2011-03-14 93 views
1

我需要將一些hibernate hbm文件遷移到JPA/Hibernate註釋。 現有關係如下 -休眠組件

  1. 父類具有ID
  2. 的組件類也有一個ID

的2個標識符指的是不同的序列。

我在組件類中使用了@Embedded@AttributeOverride父類,以及@Embeddable

這兩個類都是實體。

的例外,我得到當我嘗試保存一個父類對象 -

org.hibernate.MappingException:找不到組件屬性:ID

我猜的異常是因爲我定義了2個標識符。

對此的任何建議/解決方法將有極大的幫助。

回答

6

你不能在同一時間做一些東西@Entity@Embeddable,這是沒有意義的。你必須做到這一點或其他。

如果兩者都有一個ID,並且都是實體,那麼Hibernate/JPA組件/可嵌入模型不適用。

+5

它**確實**有道理。我有一個班,我在不同的情況下重用。通常,這個類被映射爲一個實體。但是,當我重用它時,它被映射爲一個組件(又名嵌入式)。這是完全有效的,在我的XML映射中,映射數據沒有綁定到類。但我發現沒有辦法通過註釋來實現這一點:/我試過@ @ AttributeOverrides',但它沒有幫助... – 2012-12-04 12:46:38

+0

如果有人像我一樣絆倒這個問題,你可能要考慮創建一個一對一的到許多......關係使用給定的像'@ OneToOne''這樣的''javax.persistance''註釋。另見:https://docs.oracle.com/javaee/7/tutorial/persistence-intro001.htm – Lucas 2016-09-06 23:25:12