我正在尝试实现一项功能,该功能要求表单为已登录的用户加载数据。因此,我编写了一个查询以获取此用户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映射,问题可能在那里。