Search code examples
oraclehibernateormhql

subquery returning row in HQL


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.


Solution

  • It looks like first query works now, maybe it was about Hibernate version.