2014-01-22 15 views
2

類A具有使用嵌入式創建的組合主鍵。在B類中,我引用了ManyToOne關係中的類A。但是,B類只有A類組合主鍵的其中一列。對於其他值,我希望它是一個默認值。ManyToOne多個加入列,一個是默認值

這可能嗎?

我試過使用多個連接列,但這不起作用,因爲第二列在表中的任何位置都不存在。我也認爲也許有一個解決方案使用瞬態,但我不知道如何工作。

回答

2

如果A有一個複合主鍵,那麼這兩個部分都需要唯一標識爲A.所以你的數據庫真的有一個來自B-> A的OneToMany,你希望實體只根據一個設定值引用一個特定的對象。我認爲這不是一個好主意,因爲它會使實體重用變得困難,並且插入和操縱As和Bs非常複雜,JPA也不允許這樣做。像序列一樣使用唯一的唯一標識符通常是可取的。

Hibernate和其他提供程序允許在引用中使用部分鍵。您需要在關係中添加一個Hibernate過濾器,以便根據未映射的字段僅抽出1 B:http://docs.jboss.org/hibernate/orm/3.6/reference/en-US/html/filters.html