如何在JPA中为实体的链接对象设置值

时间:2015-04-27 15:03:35

标签: jpa eclipselink

我有一个实体“A”,它与实体“B”有@ManyToOne个链接。

@Entity
public class A{
private B b;
...
@ManyToOne(fetch = FetchType.LAZY, targetEntity = B.class)
@JoinColumn(name = "B_ID", insertable = false, updatable = false)
    public B getB() {
        return b;
    }
}

我有一个A对象,它从数据库链接B对象已经查询(通过单独的查询),现在我需要将B设置为A. 我只是做aObj.setB(bObj)并在日志中看到它导致再次从数据库中查询B对象(在日志中声明调用了ReadObjectQuery。也许它从缓存中查询对象 - 这无关紧要 - 问题是一些冗余行动发生)。 它发生在A和B的状态,它们可以被管理或分离,查询总是发生。

据我所知,我可以在一个查询等中查询已经设置了B的A,但是由于遗留代码我分别有一个A实例和B实例,需要将B设置为A.是否可以设置它没有冗余数据库查询?

我正在使用EclipseLink 2.4.2

0 个答案:

没有答案