我正在使用JPA並使用Hibernate作爲我的SQL Server數據庫的提供者。JPA與其他列的多對多自引用關係
我需要一個多對多的自引用關係,它有一個額外的列或更多的附加列。
這是我現在的代碼。我由Hibernate得到例外:
@Entity
public class Person {
@OneToMany(cascade = CascadeType.ALL, mappedBy = "person", fetch = FetchType.EAGER)
private Set<Relation> relations;
@OneToMany(cascade = CascadeType.ALL, mappedBy = "relPerson", fetch = FetchType.EAGER)
private Set<Relation> inverseRelations;
}
@Entity
public class Relation implements Serializable {
@Id
@ManyToOne(cascade = CascadeType.ALL, optional = false, fetch = FetchType.EAGER)
@PrimaryKeyJoinColumn(name = "PersonID", referencedColumnName = "id")
private Person person;
@Id
@ManyToOne(cascade = CascadeType.ALL, optional = false, fetch = FetchType.EAGER)
@PrimaryKeyJoinColumn(name = "RelPersonId", referencedColumnName = "id")
private Person relPerson;
}
在運行時我得到一個異常從休眠狀態:
org.hibernate.TransientObjectException: object references an unsaved transient instance
有什麼辦法來實現這個有點更智能,更漂亮?沒有得到這種例外。
謝謝, ihrigb
似乎錯誤與實體定義無關,你可以發佈代碼引發異常的原因嗎? – remigio
它只是一個來自jsp –
的消息,但是應用程序服務器層中會拋出異常,所以您可以顯示使用實體的上下文,否則無法爲您提供幫助。 – remigio