【发布时间】:2018-07-28 20:38:04
【问题描述】:
我有以下详细信息:-
表名:测试
列名:data_reset
数据行明智:0,1,1,0,1,0,0
需要编写将所有 1 更新为 0 并将所有 0 更新为 1 的查询。 如果可以的话,也可以使用 hibernate JPA 提供相同的功能。
【问题讨论】:
标签: database hibernate spring-data-jpa
我有以下详细信息:-
需要编写将所有 1 更新为 0 并将所有 0 更新为 1 的查询。 如果可以的话,也可以使用 hibernate JPA 提供相同的功能。
【问题讨论】:
标签: database hibernate spring-data-jpa
如果列值始终为 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
【讨论】: