专栏首页一个会写诗的程序员的博客Spring Data之@Query中的org.hibernate.hql.internal.QueryExecutionRequestException: Not supported for DML

Spring Data之@Query中的org.hibernate.hql.internal.QueryExecutionRequestException: Not supported for DML

Spring Data之@Query中的org.hibernate.hql.internal.QueryExecutionRequestException: Not supported for DML

1.问题描述

org.hibernate.hql.internal.QueryExecutionRequestException: Not supported for DML operations [update com.easy.springboot.demo_cache.User a set a.password = :password where id=:id]
    at org.hibernate.hql.internal.ast.QueryTranslatorImpl.errorIfDML(QueryTranslatorImpl.java:311) ~[hibernate-core-5.2.16.Final.jar:5.2.16.Final]
    at org.hibernate.hql.internal.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:362) ~[hibernate-core-5.2.16.Final.jar:5.2.16.Final]
    at org.hibernate.engine.query.spi.HQLQueryPlan.performList(HQLQueryPlan.java:216) ~[hibernate-core-5.2.16.Final.jar:5.2.16.Final]
    at org.hibernate.internal.SessionImpl.list(SessionImpl.java:1489) ~[hibernate-core-5.2.16.Final.jar:5.2.16.Final]
  1. 问题分析 从错误信息中,可以发现,@Query无法进行DML操作,该如何做呢?
  2. 问题解决

添加 @Modifying 注解:

package com.easy.springboot.demo_cache

import org.springframework.data.jpa.repository.JpaRepository
import org.springframework.data.jpa.repository.Modifying
import org.springframework.data.jpa.repository.Query
import org.springframework.data.repository.query.Param

interface UserDao : JpaRepository<User, Long> {
    @Query("update #{#entityName} a set a.password = :password where id=:id")
    @Modifying
    fun updatePassword(@Param("id") id: Long, @Param("password") password: String): Int
}

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Caused by: org.hibernate.HibernateException: Unanticipated return type [java.lang.Long] for UUID ...

    Caused by: org.hibernate.HibernateException: Unanticipated return type [java.lan...

    一个会写诗的程序员
  • 第7章 Spring Boot集成模板引擎小结

    因为Spring Boot其实是对Spring生态的封装整合打包,以简化开发中使用Spring框架。所以 Spring Boot在集成模板引擎过程中,其实就是对...

    一个会写诗的程序员
  • spring data jpa @Query注解中delete语句报错 : @Modifying注解的使用spring data jpa @Query注解中delete语句报错

    @Query("delete from EngineerServices es where es.engineerId = ?1") int deleteBy...

    一个会写诗的程序员
  • 『互联网架构』软件架构-电商系统架构(上)(69)

    PS:docker的方式安装gogs 和 nexus。jenkins正常的方式安装。下节在104上回顾下tomcat的持续发布管理。

    IT故事会
  • React Native 和iOS Simulator 那点事

    React Native 和iOS Simulator 那点事 尊重版权,未经授权不得转载 本文出自:贾鹏辉的技术博客(http://www.devio.o...

    CrazyCodeBoy
  • 深入理解xhr的responseType中blob和arrayBuffer

    版权声明:本文为吴孔云博客原创文章,转载请注明出处并带上链接,谢谢。 https://blog.csdn.net/wkyseo/articl...

    空空云
  • Springboot前后端分离开发

    .1.springboot前后端分离开发之前要配置好很多东西,这周会详细补充博客内容和遇到的问题的解析

    阮键
  • mysql8.0新增用户及加密规则修改的那些事

    MySQL8.0已经发布GA版,当前最新GA版本为8.0.12。虽然相对于之前版本,MySQL8.0没有加入新元素,但是,经过代码重构,MySQL8.0的优化器...

    July
  • Linux 下使用 Monit 实现服务挂掉自动拉起

    由于应用稳定性或者服务器资源限制等问题,应用就会出现自动挂掉的情况,此时就需要自动拉起应用。

    叨叨软件测试
  • Java8的Stream API使用

    这次想介绍一下Java Stream的API使用,最近在做一个新的项目,然后终于可以从老项目的祖传代码坑里跳出来了。项目用公司自己的框架搭建完成后,我就想着把J...

    纪莫

扫码关注云+社区

领取腾讯云代金券