Hibernate 休眠插入到。。选择带有DISTINCT关键字的QuerySyntaxException

Hibernate 休眠插入到。。选择带有DISTINCT关键字的QuerySyntaxException,hibernate,select,hql,distinct,insert-into,Hibernate,Select,Hql,Distinct,Insert Into,我想插入到。。。在HQL中选择,其中选择是不同的: INSERT INTO TAB1 (COL1, COL2) SELECT DISTINCT :const, A.SHORTID FROM TAB2 P, TAB3 A WHERE P.LASTTIME > :lastTime AND P.NAME LIKE A.LONGID || '%' 在参数中替换它作为Oracle SQL工作,但是Hibernate(5.2.4)在这种情况下似乎不喜欢DISTINCT。它向org.hiber

我想插入到。。。在HQL中选择,其中选择是不同的:

INSERT INTO TAB1 (COL1, COL2) 
SELECT DISTINCT :const, A.SHORTID 
FROM TAB2 P, TAB3 A 
WHERE P.LASTTIME > :lastTime 
AND P.NAME LIKE A.LONGID || '%'
在参数中替换它作为Oracle SQL工作,但是Hibernate(5.2.4)在这种情况下似乎不喜欢DISTINCT。它向org.hibernate.hql.internal.ast.QuerySyntaxException抱怨存在

unexpected AST node: DISTINCT near line 1, column ..
在本例中,我可以改为使用GROUP BY A.SHORTID,但Hibernate不支持DISTINCT for INSERT INTO。。选择。。或者我的HQL语法与DISTINCT完全错误?多谢各位


编辑:在这种特殊情况下,我不能使用GROUP BY,因为序列生成了一个Id列(Hibernate将额外的列和值添加到insert中,但是)。

您应该向我们展示您使用的实际Java代码。大致如下:org.Hibernate.Session.createQuery(hqlsever).setString(“const”,“const”).setDate(“lastTime”,aDate).executeUpdate();。在createQuery调用中,上述操作失败;实际上,my GROUP BY suggestion在executeUpdate调用中失败,因为Hibernate生成的SQL在这种特定情况下是Oracle无法接受的,因为它在后台的TAB1中包含生成id的序列值。插入…选择Distinct。。。在HQL中运行良好,我认为问题在于:const。尝试使用类似CAST(:const AS…)的方法。谢谢,但事实并非如此——如果我放弃了准备好的查询的想法,直接在HQL中插入:const字符串值,那么DISTINCT关键字的QuerySyntaxException也是一样的。您应该向我们展示您使用的实际Java代码。大致如下:org.hibernate.Session.createQuery(HQLover).setString(“const”,“const”).setDate(“上次”,aDate.executeUpdate();上述操作在createQuery调用中失败;实际上,my GROUP BY suggestion在executeUpdate调用中失败,因为Hibernate生成的SQL在这种特定情况下是Oracle无法接受的,因为它在后台的TAB1中包含生成id的序列值。Insert…Select Distinct…在HQL中工作正常,我认为问题出现在ith:const。尝试使用类似CAST(:const AS…)的方法。谢谢,但似乎不是这样-如果我放弃准备查询的想法,直接在HQL中插入:const字符串值,则DISTINCT关键字的QuerySyntaxException与之相同。