标准用于从数据库检索数据。它完美地生成 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 列表,则不要设置不同的根实体结果转换器。
关于java - Criteria 正确生成 SQL 查询,但不返回任何内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15183996/