8

我正在尝试使用以下 hql 切换布尔字段:

update Entity e set e.booleanField = not e.booleanField where e.id = ?1;

不幸的是“QuerySyntaxException:意外令牌:不在附近......”被抛出。

我的问题是:是否有一些支持这种表达的休眠一元运算符?或者有什么众所周知的技巧?

sql 支持这样的查询(postgresql):

update entity_table set booleanField = not(booleanField);
4

2 回答 2

3

要切换布尔属性,相当于not一元运算符,在 HQL/JPQL 下,使用:

UPDATE entity e SET e.booleanField = (e.booleanField=false)
于 2014-01-21T16:32:09.250 回答
0

我会为此使用本机 SQL 查询。

于 2012-07-16T02:33:52.673 回答