java - Criteria 正确生成 SQL 查询,但不返回任何内容

标签 java hibernate jakarta-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);

最佳答案

你的代码没有多大意义:

accCr.setResultTransformer(DetachedCriteria.DISTINCT_ROOT_ENTITY);

上面的行表示查询应该返回实体(可能具有连接的实体),并且 Hibernate 应该仅返回不同的实体

accCr.setProjection(Projections.id());

上面一行表示查询只能返回一个标量列:根实体的 ID。

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

关于java - Criteria 正确生成 SQL 查询,但不返回任何内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15183996/

相关文章:

java - Java 中的 Jackson JSON 序列化 - 将 k/v 对写入根而不是嵌套在属性名称中

java - Hibernate jpql查询正确用法

java - 父/子关系的 Hibernate 注释映射?

使用 JMS 发布订阅的 Java EE 替代方案

java - 在 Java EE 中将生成的 PDF 存储在何处

java - 如何将hibernate注解应用到抽象类的子类上

java - 从 JSF 项目根文件夹中读取 html 文件

java - Hibernate 用一个 session.save 保存许多不同的对象

java - 调用 DataSource.getConnection 未返回预期的连接

java - log4j2 中 DenyAllFilter 的等价物是什么