JPA/Hibernate: как использовать INSERT JPQL?

Этот JPQL

em.createQuery("INSERT INTO Count (id, count) SELECT 1, ?").setParameter(1, id).executeUpdate();

бросает

org.hibernate.hql.internal.ast.QuerySyntaxException: expecting OPEN, found ')' near line 1, column 29 [INSERT INTO Count (id, count) SELECT 1, ?]

Как должен выглядеть запрос?

Имеет ли значение, что я использую JPA API, но на самом деле HQL? JPQL не поддерживает INSERT.

Использование Hibernate 4.1.6 в JBoss AS 7.1.2.
Ссылка: http://docs.jboss.org/hibernate/orm/4.1/devguide/en-US/html/ch11.html#d5e2637


person Ondra Žižka    schedule 31.01.2013    source источник


Ответы (1)


Поскольку count является зарезервированным словом, добавление квадратных скобок вокруг него, например [count], будет работать.

person Mukus    schedule 31.01.2013
comment
Возможно, вы правы, но [] не работает, и я не могу найти, как избежать этого ключевого слова... - person Ondra Žižka; 31.01.2013
comment
Ну, тогда это зависит от поставщика базы данных. - person Mukus; 31.01.2013
comment
Я думаю, что нет, поскольку это свойство объекта, а не имя столбца. Создан stackoverflow.com/questions/14619630/ . - person Ondra Žižka; 31.01.2013