我正在使用 JPA 并使用 Hibernate 作为我的 SQL Server 数据库的提供程序。
我需要一个多对多的自引用关系,它有一个附加列甚至更多附加列。
那是我当前的代码。我收到 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