Hibernate INSERT INTO ..使用DISTINCT关键字SELECT QuerySyntaxException

时间:2017-03-14 12:40:55

标签: hibernate select hql distinct insert-into

我想在HQL中执行INSERT INTO ... SELECT,其中select是DISTINCT:

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不支持INSIST INTO中的DISTINCT ... SELECT ..还是我的HQL语法与DISTINCT错了?谢谢。

编辑:在这种特殊情况下,我不能使用GROUP BY,因为从序列生成了一个Id列(Hibernate将额外的列和值添加到插入,但是it appears Oracle does not allow selecting from a sequence together with GROUP BY or ORDER BY)。

0 个答案:

没有答案