Criteria正确生成SQL Query但它不返回任何内容

时间:2013-03-03 08:46:57

标签: java hibernate java-ee criteria hibernate-criteria

标准用于从数据库中检索数据。它完美地生成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);

1 个答案:

答案 0 :(得分:0)

您的代码没有多大意义:

accCr.setResultTransformer(DetachedCriteria.DISTINCT_ROOT_ENTITY);

上面一行说查询应该返回实体(有可能是连接的实体),而Hibernate应该只返回不同的实体

accCr.setProjection(Projections.id());

上面一行说查询必须只返回一个标量列:根实体的ID。

如果您需要的是ID列表,则不要设置不同的根实体结果转换器。