【JavaWeb】 Not supported for DML operations

在UPDATE时报错。

解决:添加@Modifying注解。

这里写图片描述

百度到的总结:

(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无效。

posted @ 2018-02-08 17:07  SEC.VIP_网络安全服务  阅读(196)  评论(0编辑  收藏  举报