HQL 中的子查询返回行

subquery returning row in HQL

我想做以下事情:

INSERT INTO Table0(value1, value2) 
SELECT 
    (SELECT t1.something1 FROM Table1 t1 WHERE t1.id = :t1id),
    (SELECT max(t2.something2) FROM Table2 t2 WHERE t2.some = :t2Some)
FROM Table1, Table2

但是 hibernate 抱怨我想将实体 (Table1) 作为字符串 (value1) 插入。它看起来像 HQL returns 实体中的子查询而不是列值。我可以强制它不这样做吗?

我知道,我可以这样做:

INSERT INTO Table0(value1, value2)
SELECT t1.something1, max(t2.something2) FROM Table1 t1, Table2 t2 WHERE ...

但是它为 Oracle 生成了错误的 SQL,因为 SELECT 中有 HIBERNATE_SEQUENCE.NEXTVAL 而 Oracle 不允许这样做。

看起来第一个查询现在可以工作了,可能是关于 Hibernate 版本的问题。