簡體   English   中英

JPA多對多自引用關系與附加專欄

[英]JPA many to many self referencing relation with additional column

我正在使用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

如果某個對象與Hibernate Session不關聯,則該對象將是Transient

保存Person時, Relation列表的實例可能是Transient (通常,該實例沒有標識符值)。

是了解對象狀態的更好方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM