我正在尝试实现一个功能,需要表单为登录用户加载数据。因此我编写了一个查询来获取该用户 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 session 之外访问它。然而,在这种情况下,我预计会抛出异常。
请包含 Hibernate 映射,问题可能就在那里。
关于java - Hibernate 为实体实例变量获取 null?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4357801/