数据库更新查询,将全1更新为0,将全0更新为1

时间:2018-07-28 20:38:04

标签: database hibernate spring-data-jpa

我有以下详细信息:-

表名称:测试

列名:data_reset

明智的数据行:0,1,1,0,1,0,0

需要编写查询以将所有1都更新为0,并将所有0都更新为1。 如果可以的话,还可以使用休眠JPA提供相同的功能。

1 个答案:

答案 0 :(得分:0)

如果列值始终为0或1,则可以使用按位异或运算符

UPDATE test SET data_reset = (data_reset ^ 1);

JPA查询

Query query = em.createQuery("UPDATE Test SET dataReset = (dataReset ^ 1)");
 int updateCount = em.executeUpdate();

如果没有活动的事务,则抛出TransactionRequiredException。

成功后-executeUpdate方法返回查询已修改的对象数。 这里em是EntityManager对象。 有关更多参考,请访问UPDATE SET Queries in JPA/JPQL