标准用于从数据库中检索数据。它完美地生成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);
答案 0 :(得分:0)
您的代码没有多大意义:
accCr.setResultTransformer(DetachedCriteria.DISTINCT_ROOT_ENTITY);
上面一行说查询应该返回实体(有可能是连接的实体),而Hibernate应该只返回不同的实体
accCr.setProjection(Projections.id());
上面一行说查询必须只返回一个标量列:根实体的ID。
如果您需要的是ID列表,则不要设置不同的根实体结果转换器。