Java 在Spring JPA事务中急切地加载多个一个惰性集合

Java 在Spring JPA事务中急切地加载多个一个惰性集合,java,spring,hibernate,spring-mvc,jpa,Java,Spring,Hibernate,Spring Mvc,Jpa,我在我的Spring JPA实体中有惰性加载的OneToMany、ManyToMany和ManyToOne集合。每当我想将我的OneToMany和MantToMany集合加载到我的事务中时,我就使用这个技巧 school.getStudents().size() 以类似的方式,我想加载我的manytone收藏(比如学校->城市)。我将如何将我的城市数据以类似于上述OneToMany收藏展的“简单方式”加载到我的交易中 我现在的选择是 将manytone更改为Eager load 在获取学校数据的

我在我的Spring JPA实体中有惰性加载的OneToMany、ManyToMany和ManyToOne集合。每当我想将我的OneToMany和MantToMany集合加载到我的事务中时,我就使用这个技巧

school.getStudents().size()

以类似的方式,我想加载我的manytone收藏(比如学校->城市)。我将如何将我的城市数据以类似于上述OneToMany收藏展的“简单方式”加载到我的交易中

我现在的选择是

  • 将manytone更改为Eager load
  • 在获取学校数据的同时,编写一个获取城市的JPQL查询。但是,如果我有多个manytone实体,并且任何附加字段都涉及更改JPQL查询,那么这就不是很灵活了

  • 如果您有任何建议,我们将不胜感激。

    请找一位能手?例如getToOne().getId()是的,为什么不
    school.getCity()
    (在事务范围内)?@Frey school.getCity()抛出异常!我认为这是正常的行为,因为它是由于延迟加载而被代理的。。。或者您可以使用
    CriteriaBuilder
    …的可能副本