我有一个类型A的实体,其引用的成员实体类型为B. 我想在A的实例之间插入一个关系,而不必获取B。
有没有办法只通过ID来做到这一点?类似的东西:
B mockB = new B();
mockB.id =“id_persisted_b”;
instanceA.setB(mockB);
感谢。
答案 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(表示不加载子级)。默认情况下,子对象的延迟加载为真。