【发布时间】:2012-09-24 10:30:06
【问题描述】:
在hibernate中,我在Dao层使用了findById()和findAll()。findById()方法按我的预期工作,但是findAll()总是返回空结果集,我仍然无法弄清楚原因,任何人都可以帮我解决这个问题,
注意:没有异常,只返回空列表
这是我的代码
查找所有方法
public List<T> findAll() {
Query query = getSession().createQuery("SELECT obj FROM " + persistentClass.getSimpleName() + " obj");
return query.list()
}
按 ID 查找方法
public T findById(Long id) {
T result = (T) getSession().get(getPersistentClass(), id);
return result;
}
getSession 方法
protected Session getSession() {
if (session == null)
session = tenantBasedSessionFactory.getTenantBasedSession("tenantId");
// throw new IllegalStateException("Session has not been set on DAO before usage");
return session;
}
提前谢谢你 干杯
【问题讨论】:
-
SQL 日志说明了什么。启用 SQL 日志记录并检查 SQL 查询是否正确。
-
谢谢回复,这里是sql查询“SELECT obj FROM Employee obj”,我认为是正确的,
-
我知道这是个愚蠢的问题,但是您在 Employee 表中有任何数据吗?我的意思是提交的数据?
-
是的,我不知道原因,使用 findById() 方法可以正常工作
-
谢谢,我找到了解决办法,错误就在我身边,谢谢你的帮助