在UPDATE时报错。

解决:添加@Modifying注解。

【JavaWeb】 Not supported for DML operations_数据库

百度到的总结:

(1)可以通过自定义的 JPQL 完成 UPDATE 和 DELETE 操作。
注意: JPQL 不支持使用 INSERT;
(2)在 @Query 注解中编写 JPQL 语句, 但必须使用 @Modifying 进行修饰. 以通知   SpringData, 这是一个 UPDATE 或 DELETE 操作
(3)UPDATE 或 DELETE 操作需要使用事务,此时需要定义 Service 层,在 Service 层的方法上添加事务操作;
(4)默认情况下, SpringData 的每个方法上有事务, 但都是一个只读事务。
他们不能完成修改操作。

另外还发现一个问题:

hibernate在映射数据库字段的时候不支持驼峰命名。

如果数据库中存在userName这样的字段,hibernate在执行更新操作时,或将查询语言转化为user_name,会重新生成一个user_name字段,导致update无效。

网络上志同道合,我们一起学习网络安全,一起进步,QQ群:694839022