懒惰的字段总是加载

时间:2017-04-26 12:30:11

标签: java postgresql hibernate

我的课程有多对一的关系。当我使用Criteria.list查询它们时,将填充惰性字段。

public class SE {

    @OneToMany(fetch = FetchType.LAZY, mappedBy = "mSe")
    private List<RS> mRs;
}

public class RS {

    @ManyToOne(fetch = FetchType.LAZY)
    @JoinColumn(name = "my_join_id")
    private SE mSe;
}

...

Criteria criteria = session.createCriteria(SE.class);    
List<SE> myObjects = criteria.list();

// SE objects have lazy list populated. why?

如何防止加载惰性字段?

1 个答案:

答案 0 :(得分:0)

你怎么知道它已被填充?

如果您正在使用调试器,这是一种正常行为,因为debuger会执行很多操作,并且大部分时间都会调用getter来获取实例的字符串表示形式。由于调用了getter,因此会触发延迟加载。

您可以采取哪些措施来确保它实际上是延迟加载的,请删除@Transactional注释,并且在访问调试器中的SE时应该会出错。