JPA:我必须获取所有OneToMany关系列表才能添加新关系

时间:2013-05-09 14:44:32

标签: jpa spring-data-jpa

假设我有实体A和A有B的列表,标记为OneToMany。我是否必须获取所有B项以便将新B项添加到列表A中?

示例:

@Entity
public class A {

   @Id
   Long id;

   @OneToMany
   List<B> bs;
} 

我是否必须获取所有A.bs才能将新项目添加到bs?

谢谢

阿龙

修改 更多问题:

@German:有意思!几个问题

  1. 如果表A中的A和B之间的连接是什么?我有同样的行为吗?

  2. 为什么列表会出问题?

  3. 我可以使用什么而不是列表?设置?

  4. 如果我坚持A我会覆盖B的所有链接吗?

  5. 如果链接是ManyToMany(使用额外的表格)

  6. ,该怎么办?

2 个答案:

答案 0 :(得分:3)

您必须将b添加到A的bs列表中。但是,提供商会发生什么。像EclipseLink这样的提供程序可以避免在启用更改跟踪时为延迟加载列表上的某些操作获取列表

答案 1 :(得分:1)

如果B有一个@ManyToOne注释指向A并且你不会使用该列表,你可能只需要设置B对A的引用并保持它,而不需要触及A实例。在数据库中,数据将被插入到表B中,但在内存中,A的列表将没有新元素。