Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.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
Hibernate Grails ExecuteQuery在选择时提供不同的结果集_Hibernate_Grails_Gorm - Fatal编程技术网

Hibernate Grails ExecuteQuery在选择时提供不同的结果集

Hibernate Grails ExecuteQuery在选择时提供不同的结果集,hibernate,grails,gorm,Hibernate,Grails,Gorm,我的问题 def myQuery = PublicTraining.executeQuery("SELECT t.id, t.isSoldOut, t.course.ebPrice, t.offerPrice FROM PublicTraining t Where exists (from t.course.tracks AS tracks where tracks.id IN (1) )") 返回错误的多条记录 如果我把它改成 def myQuery = PublicTraining.

我的问题

 def myQuery = PublicTraining.executeQuery("SELECT  t.id, t.isSoldOut, t.course.ebPrice, t.offerPrice FROM PublicTraining t Where exists (from t.course.tracks AS tracks where tracks.id IN (1) )")
返回错误的多条记录

如果我把它改成

 def myQuery = PublicTraining.executeQuery("SELECT  t.id FROM PublicTraining t Where exists (from t.course.tracks AS tracks where tracks.id IN (1) )")
它返回正确的结果集

为什么列的选择会更改此处的结果集

  • 这两个查询都将返回多个记录

  • 您无法预测订单,因为您没有应用not sort order

  • 第一个查询将返回4个元素的列表,而第二个查询将只返回id值的列表


  • 如果在管理工具中运行这些查询,会发生什么?另外,您可以尝试将“logSql=true”放入DataSource.groovy中,以查看实际创建的SQL。现在无法写出答案,但我认为结果可能实际上是一个多维数组(一个级别表示列,另一个级别表示行)。第一个查询返回的数组长度是否为4?