私は JPA を使用しており、SQL Server データベースへのプロバイダーとして Hibernate を使用しています。
追加の列またはさらに追加の列を持つ多対多の自己参照関係が必要です。
それが私の現在のコードです。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
これをもう少し賢くうまく実装する方法はありますか?? その例外を取得せずに。
ありがとう、