gpt4 book ai didi

java - Spring:不要以惰性模式加载,而是获取数据

转载 作者:行者123 更新时间:2023-12-04 05:36:37 25 4
gpt4 key购买 nike

我有 Spring 和延迟加载的下一个问题。我有下一个服务方法:

@Override
@Transactional(readOnly=true)
public List<A> getA(Long ano, Long idGt) {
List<A> datos = ADAO.getHorariosAnoGt(ano, idGt);
datos.size();
C c = datos.get(0).getB().getC();
return datos;
}

和下一个实体:
A:
B b; *(LAZY)*
Y y;
B:
C c; *(LAZY)*
X x;
C:
H h;

很好,当我这样做时,我没有得到加载了 b 和 c 的 datos,而是“datos.get(0).getB().getC();”返回数据。

最佳答案

您可以使用一些选项

  • 对特定数据类型使用预先加载,例如,fetchType=FetchType.EAGER
  • 手动初始化集合 Hibernate.initialize(..)
  • 招聘Fetch Profiles切换懒加载和急切加载
  • 在事务中访问惰性集合的对象(类似于您所做的),例如,

  • for (A dato : datos) {
    dato.getB().getC();
    }

    关于java - Spring:不要以惰性模式加载,而是获取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11841674/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com