Hibernate - 按ID添加成员实体实例

时间:2014-01-30 18:18:28

标签: java hibernate orm persistence

我有一个类型A的实体,其引用的成员实体类型为B. 我想在A的实例之间插入一个关系,而不必获取B。

有没有办法只通过ID来做到这一点?类似的东西:

  

B mockB = new B();

     

mockB.id =“id_persisted_b”;

     

instanceA.setB(mockB);

感谢。

3 个答案:

答案 0 :(得分:0)

如果使用Fetch类型,LAZY hibernate将不会加载该对象,它将在您需要时仅加载对它的引用。就像只有元素的PrimaryKey一样。它会自动完成。

答案 1 :(得分:0)

如果您使用的是JPA,则可以使用EntityManager.getReference()获取对象的代理,而无需获取所有字段,例如:

B mockB = entityManager.getReference(B.class, "id_persisted_b");
instanceA.setB(mockB);

答案 2 :(得分:0)

延迟抓取决定在加载父对象时是否加载子对象。您需要设置父类的相应hibernate映射文件。

Lazy = true(表示不加载子级)。默认情况下,子对象的延迟加载为真。