gpt4 book ai didi

java - Spring Hibernate 在 Google App Engine 上给出 LazyInitializationException

转载 作者:行者123 更新时间:2023-11-30 03:12:32 25 4
gpt4 key购买 nike

考虑实体

public class User {
...
@OneToMany(cascade = CascadeType.ALL)
List<SocialCredential> credentialsList = new ArrayList<SocialCredential>();
}

用DAO实现方法

@Transactional
@Override
public User getUser(long id){
Session s = sessionFactory.getCurrentSession();
User asu = (User) s.get(User.class, id);
return asu;
}

和 Controller

@Controller
public class DummyController {
@Autowired
UserDAO userDAO;

public void anyMethodAccessedByGetORPost(){
User u= userDAO.getUser(1L);
}
}

我的问题是为什么实体 User 的简单查询会自动触发查询来初始化 SocialCredential 的实体列表?最终它会导致 LazyInitializationException。Google App Engine 有什么问题吗?我在 Apache Tomcat 上尝试过同样的操作,它会在没有成功初始化实体列表 SocialCredential 的情况下触发一个查询。之后,我使用了本地 Jetty 服务器,并在部署后进行了尝试它到 GAE 服务器,但没有成功。我对急切加载列表 SocialCredential 不感兴趣。

最佳答案

使用 OpenSessionInViewFilter 过滤器在过滤器级别打开 session 。此后您将不会再遇到此类错误。

关于java - Spring Hibernate 在 Google App Engine 上给出 LazyInitializationException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33317003/

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