java - Criteria 查询返回所有记录

标签 java sql hibernate

SQL:

String hql1 = "SELECT /* PARALLEL(MVR,16) PARALLEL(MVRS,16)*/  * FROM
ICM MINUS SELECT I1.* FROM ICM I1 , C1_ICM_STATIC I2 WHERE
I1.METRIC_DIRECTION=I2.METRIC_DIRECTION AND
I1.METRIC_NAME=I2.METRIC_NAME AND I1.METRIC_UNIT=I2.METRIC_UNIT AND
I1.TERMINATION_POINT_ID=I2.TERMINATION_POINT_ID AND
I1.TERMINATION_POINT_NAME=I2.TERMINATION_POINT_NAME AND
I1.TERMINATION_POINT_TYPE=I2.TERMINATION_POINT_TYPE";

条件查询

icms1 = (List<ICM>) session.createCriteria(ICM.class, hql1).list();

我使用 SQL Developer 执行了 hql1,然后只得到了一个结果,但是当我将 SQL 查询与 Criteria 集成时,它返回了我ICM 表中的所有记录

如果 SQL 查询在 SQL Developer 中仅返回一个结果,为什么标准 API 会返回 ICM 表中的所有记录?

最佳答案

Why criteria API returning all records in ICM table?

从技术上讲,您没有使用条件 api 进行关联。

尝试这样的事情。 Refer.

 return criteria.createCriteria(A.class)
           .createCriteria("b", "join_between_a_b")
           .createCriteria("c", "join_between_b_c")
           .createCriteria("d", "join_between_c_d")
           .add(Restrictions.eq("some_field_of_D", someValue));

关于java - Criteria 查询返回所有记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29598794/

相关文章:

sql - 提高 apache 配置单元的性能

mysql - 在复杂的 mySQL 语句中添加不等于

java - 将查询结果映射到属性

python - PonyORM数据库表动态定义

spring - org.jasypt.exceptions.EncryptionOperationNotPossibleException

java - GWT 2.4、GWTP 和 Hibernate + Maven 与 Eclipse

java - 在模型中创建复杂的业务逻辑

java - 在按值排序的 map 中的条目周围检索固定数量的条目

java - 定义将不同大小的数组打印到表中的Java方法

java - 使用 iterator.remove() 时出现非法状态异常