我正在尝试实现一项功能,该功能要求表单为已登录的用户加载数据。因此,我编写了一个查询以获取此用户ID的数据,以下是学校实体类的代码段:

public class ShSchool implements java.io.Serializable {
     private long schoolId;
     private GsDistrict gsDistrict;
}


我尝试使用以下查询获取数据:

session.createQuery("from ShSchool where schoolId="+schoolId).list();


问题是我得到了原始实例变量的值,而对于任何其他数据类型(例如GsDistrict)却得到了null,那么怎么了?怎么获得这些对象的值呢?

谢谢

最佳答案

可能的原因:


对于该特定用户,gsDistrict确实为空,请检查数据库以确保不是。
Hibernate映射不正确。
gsDistrict是延迟加载的,您正在Hibernate会话之外访问它。但是,在这种情况下,我希望会引发异常。


请包括Hibernate映射,问题可能在那里。

07-26 06:29