问题描述:在使用Spring Data Jpa的注解形式去配置删除sql语句,出现了下述异常:
org.springframework.dao.InvalidDataAccessApiUsageException: org.hibernate.hql.internal.QueryExecutionRequestException: Not supported for DML operations
Spring Data Jpa的注解形式去配置删除sql语句如下:
@Query("delete from User where id=:idStr")
void delete(@Param("idStr") String idStr);
解决方法:
import org.springframework.data.jpa.repository.Modifying;
import org.springframework.data.jpa.repository.Query;
在上述sql配置上添加@Modifying注解
@Modifying
@Query("delete from User where id=:idStr")
void delete(@Param("idStr") String idStr);
@Modifying 这个注解在JPA中经常出现,是为了通知jpa,这是一个update或者delete操作,在更新或者删除操作时,此注解必须加,否则就会抛出异常