使用标准从数据库检索数据。它完美地生成了SQL查询,该SQL查询分别在mySql
上进行了测试,并且记录已正确加载;但是,当使用Criterial.list()
时,它给了我一个空列表。
我已经检查了数据库连接,它们都是正确的。是什么引起了这个问题?
更新
这是我的代码:
accCr = DetachedCriteria.forClass(TSESpotInvestorAccount.class, "acc");
accCr.setResultTransformer(DetachedCriteria.DISTINCT_ROOT_ENTITY);
accCr.add(Restrictions.eq("exchangeDepositNo", filter.getBc()));
accCr.setProjection(Projections.id());
List accIds = getHibernateTemplate().findByCriteria(accCr);
最佳答案
您的代码没有多大意义:
accCr.setResultTransformer(DetachedCriteria.DISTINCT_ROOT_ENTITY);
上面的代码行说查询应该返回实体(可能带有连接的实体),并且Hibernate应该只返回不同的实体
accCr.setProjection(Projections.id());
上面的行说查询只能返回一个标量列:根实体的ID。
如果您想要的是ID列表,请不要设置不同的根实体结果转换器。