2013-08-20 54 views
3

我有两个与unidirectional @OneToMany Lazy关系的实体。当我尝试添加一个孩子,好像休眠4(我的JPA提供者)实际执行JPA单向@OneToMany性能

  1. Select查询
  2. 删除所有儿童提供有关连接表
  3. 重新插入回所有和新的那父ID孩子在连接表

如何使Hibernate插入我希望的孩子,而不改变我的关系?

回答

2

默认情况下,一个单向的@OneToMany关系会使用一个连接表,它会执行我的问题。如果您使用的是JPA2,并且不对父代使用多态,则可以添加@JoinColumn,这将在子表上创建外键,而不是另一个连接表。 JPA提供程序然后将不执行删除并重新插入。

1

双向关系将解决您的问题。你可以阅读一些信息here

+2

我不能将其更改为双向,正如我所说的。 –