我想将以下mysql查询转换为HQL
UPDATE `table` SET `my_bool` = NOT my_bool
而且我还需要更改具有所选id
的行我的尝试
UPDATE Model m SET m.flag = NOT m.flag WHERE m.id is :id
function(Integer id){
StringBuilder queryBuilder = new StringBuilder("UPDATE Model m SET m.flag = NOT m.flag WHERE m.id is :id");
this.em.createQuery(queryBuilder.toString());
}
我收到以下错误:
意外令牌:NOT
我刚刚开始学习HQL,documentation说它是一个有效的运算符
11.6.9。 NOT谓词运算符
NOT运算符用于否定其后面的谓词。如果 在谓词为真后,NOT解析为false。如果 谓词是真的,不解析为假。如果谓词未知, NOT也解析为未知。
你能帮忙吗
答案 0 :(得分:1)
它对我有用:
UPDATE Model m SET m.flag = !m.flag WHERE m.id = :id
和C#代码:
var query = container.Resolve<ISession>().CreateQuery(hql);
query.SetParameter("id", 1);
query.ExecuteUpdate();