否定Hibernate QL中的一元运算符

时间:2012-04-25 14:15:25

标签: java hibernate operators unary-operator

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

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

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

我的问题是:是否有一些支持这种表达式的hibernate一元运算符?或者任何众所周知的技巧?

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

update entity_table set booleanField = not(booleanField);

2 个答案:

答案 0 :(得分:2)

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

UPDATE entity e SET e.booleanField = (e.booleanField=false)

答案 1 :(得分:1)

我只会使用本机SQL查询。