Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 条件查询返回所有记录_Java_Sql_Hibernate - Fatal编程技术网

Java 条件查询返回所有记录

Java 条件查询返回所有记录,java,sql,hibernate,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.T

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();
icms1=(List)session.createCriteria(ICM.class,hql1.List();
我使用SQL Developer执行了
hql1
,然后只得到了
一个结果
,但当我将SQL查询与
条件集成后,它会返回
ICM
表中的所有记录

如果SQL Developer中的
SQL
查询只返回一个结果,为什么条件API会返回
ICM
表中的所有记录

为什么标准API返回ICM表中的所有记录

从技术上讲,您没有使用标准api进行关联

试试这样的。


您应该学习阅读API文档

要分配给根实体的别名。这不是HQL查询。HQL查询不使用
会话.createCriteria()
执行。他们是用电脑执行的


顺便说一句,您的查询根本不是HQL查询。这是一个SQL查询。SQL和HQL是两种不同的语言。要执行SQL查询,您需要。

在“条件查询”中,您必须为添加where子句条件添加限制。您可能工作很匆忙,但在要求他人花时间回答您的问题时,您仍然会尝试花费一些精力
returnig
returing
Executed
不难正确拼写。@DipenAdroja但在我的查询中,我已经用where子句编写了所有条件。条件不会直接从给定的hql创建where子句。我想你被误解了。请提供更多详细信息。@DipenAdroja我已经更新了我的问题,在其中添加了查询,我只是将此查询传递给criteria api。
 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));