关于@EntityGraph使即时加载属性变为延迟加载及多关联实体即时加载的问题咨询
关于@EntityGraph使即时加载属性变为延迟加载及多关联实体即时加载的问题咨询
各位大佬好,我最近在使用JPA处理实体关联查询的时候碰到了个小困惑,想过来请教下大家的经验。我现在需要即时获取一对多关联的实体数据,不想用延迟加载(怕后续出现懒加载异常),所以特意在UserRepository里新增了一个单独的查询方法,还给它加上了@EntityGraph注解来配置即时加载,具体代码如下:
@RepositoryDefinition(domainClass = User.class, idClass = Long.class) public interface UserRepository { Optional<User> findById(Long id); @EntityGraph(attributePaths = {"emailData"}, type = EntityGraph.EntityGraphType.LOAD) // this is important Optional<User> findEagerById(Long id); }
不过我现在有两个疑问想请教:
- 这个
@EntityGraph的配置,会不会把User实体里原本设置为即时加载的其他属性,反而改成延迟加载了? - 如果我要同时即时加载多个一对多的关联实体(比如除了
emailData还有orders、addresses这类集合),是不是只要把这些属性都加到attributePaths数组里就可以了?有没有什么需要注意的地方?
麻烦各位帮忙解答下,谢谢啦!
内容来源于stack exchange
相关产品推荐
相关产品推荐

