如何急切地使用 JPA 2.0 加载惰性字段?

2022-09-03 15:48:22

我有一个实体类,它有一个像这样的懒惰字段:

@Entity
public Movie implements Serializable {
    ...
    @Basic(fetch = FetchType.LAZY)
    private String story;
    ...
}

故事字段通常应该懒惰地加载,因为它通常很大。然而,有时,我需要热切地加载它,但我不会写一些像movie.getStory()这样丑陋的东西来强制加载。对于懒惰关系,我知道获取连接可以强制预先加载,但它不适用于懒惰字段。如何编写查询以热切地加载故事字段?


答案 1

我会试试.但是调用 getter(并添加一个注释,强制初始化)并不是那么错误。Hibernate.initialize(movie)


答案 2

您可以在查询中使用关键字:fetch all properties

SELECT movie 
FROM Movie movie FETCH ALL PROPERTIES
WHERE ...

推荐