我发现我的休眠程序的情况很奇怪。这是我的代码
public Set<AnotherClass> getAnotherClassSetsFromSomeClass() {
Session session = HIbernateUtil.getSessionFactory().openSession();
Transaction trans = session.beginTransaction();
SomeClass sc = (SomeClass)session.get(SomeClass.class,"classId");
trans.commit();
session.close;
return sc.getAnotherClassSet();
}
如果我在 Java 控制台上运行此代码,它看起来不错。
如果我在一个 Web 应用程序 (JSF) 中使用它,我会收到此错误
懒惰初始化失败 - 没有会话或会话被关闭
它有一对多的关系(一个 SomeClass 有很多 AnotherClass)
指向返回的异常消息sc.getAnotherClassSet()
为空指针。我确信我的数据库中有这些数据。
好吧,我发现如果我添加System.out.println(sc.getAnotherClassSet())
berforereturn sc.getAnotherClassSet()
我的代码工作正常。
知道发生了什么吗?谢谢。