在休眠状态下,我在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;
}
提前谢谢你 干杯
答案 0 :(得分:0)
我看不出有任何问题,假设实体名称准确且数据存在,但您是否尝试过短符号?
Query query = getSession().createQuery("FROM " + persistentClass.getSimpleName());
我发现阅读简单的“获取所有”查询会更好,因为如果只返回一个实体,则不需要任何别名。