2013-08-20 93 views
3

我有兩個與unidirectional @OneToMany Lazy關係的實體。當我嘗試添加一個孩子,好像休眠4(我的JPA提供者)實際執行JPA單向@OneToMany性能

  1. Select查詢
  2. 刪除所有兒童提供有關連接表
  3. 重新插入回所有和新的那父ID孩子在連接表

如何使Hibernate插入我希望的孩子,而不改變我的關係?

回答

2

默認情況下,一個單向的@OneToMany關係會使用一個連接表,它會執行我的問題。如果您使用的是JPA2,並且不對父代使用多態,則可以添加@JoinColumn,這將在子表上創建外鍵,而不是另一個連接表。 JPA提供程序然後將不執行刪除並重新插入。

1

雙向關係將解決您的問題。你可以閱讀一些信息here

+2

我不能將其更改爲雙向,正如我所說的。 –