Nechal jsem si v Idei vygenerovat příslušné anotace:
public class DataBindingEntity {
private long recordId;
@Id
@Column(name = "RECORD_ID", nullable = false)
public long getRecordId() {
return recordId;
}
public void setRecordId(long recordId) {
this.recordId = recordId;
}
private HibertestEntity hibertestByRecordId;
@OneToOne
@JoinColumn(name = "RECORD_ID", referencedColumnName = "ID", nullable = false)
public HibertestEntity getHibertestByRecordId() {
return hibertestByRecordId;
}
public void setHibertestByRecordId(HibertestEntity hibertestByRecordId) {
this.hibertestByRecordId = hibertestByRecordId;
}
...
}
public class HibertestEntity {
private long id;
@Id
@GeneratedValue(generator="triggerAssigned")
@GenericGenerator(name = "triggerAssigned",
strategy = "jpl.hibernate.util.TriggerAssignedIdentityGenerator")
@Column(name = "ID", nullable = false, length = 22)
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
private DataBindingEntity dataBindingById;
@OneToOne(mappedBy = "hibertestByRecordId")
public DataBindingEntity getDataBindingById() {
return dataBindingById;
}
public void setDataBindingById(DataBindingEntity dataBindingById) {
this.dataBindingById = dataBindingById;
}
...
}
Jenže jsem si parádně naběhl. Během inicializace sezení jsem chytil NPE:
13:04:59,125 ERROR [[acceptor]] Allocate exception for servlet acceptor
java.lang.NullPointerException
at org.hibernate.cfg.OneToOneSecondPass.doSecondPass(OneToOneSecondPass.java:135)
at org.hibernate.cfg.Configuration.secondPassCompile(Configuration.java:1130)
at org.hibernate.cfg.AnnotationConfiguration.secondPassCompile(AnnotationConfiguration.java:296)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1286)
Zakomentování OneToOne propert na obou stranách problém vyřešilo. No, vyřešilo ... :-(
takže si to musím řešit ručně. Nedá se nic dělat.
Žádné komentáře:
Okomentovat