我正在尝试使用以下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);
答案 0 :(得分:2)
要在HQL / JPQL下切换布尔属性,相当于not
一元运算符,请使用:
UPDATE entity e SET e.booleanField = (e.booleanField=false)
答案 1 :(得分:1)
我只会使用本机SQL查询。