I want to do following:
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
But hibernate complains that I want to insert entity (Table1) as string (value1). It looks like subqueries in HQL returns entities instead of column values. Can I force it not to do so?
I know, that I can do like:
INSERT INTO Table0(value1, value2)
SELECT t1.something1, max(t2.something2) FROM Table1 t1, Table2 t2 WHERE ...
but it generates bad SQL for Oracle, because there is HIBERNATE_SEQUENCE.NEXTVAL
in SELECT and Oracle does not allow to do so.
It looks like first query works now, maybe it was about Hibernate version.