jpa自定义修改

Posted 棘丶

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了jpa自定义修改相关的知识,希望对你有一定的参考价值。

当执行需要自定义修改得时候

@Modifying//update和delete的时候必须标
@Query(value = "update mic_line set rod_no=?1 where line_no=?2",nativeQuery = true)
void updateRod(String rodNo,String lineNo);

Spring JPA报错:InvalidDataAccessApiUsageException: Executing an update/delete query
集成Spring JPA,在执行delete,update时需要添加事务。

错误信息:

org.springframework.dao.InvalidDataAccessApiUsageException: Executing an update/delete query; nested exception is javax.persistence.TransactionRequiredException: Executing an update/delete query
at org.springframework.orm.jpa.EntityManagerFactoryUtils.convertJpaAccessExceptionIfPossible(EntityManagerFactoryUtils.java:402)
at org.springframework.orm.jpa.vendor.HibernateJpaDialect.translateExceptionIfPossible(HibernateJpaDialect.java:255)
at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.translateExceptionIfPossible(AbstractEntityManagerFactoryBean.java:527)
at org.springframework.dao.support.ChainedPersistenceExceptionTranslator.translateExceptionIfPossible(ChainedPersistenceExceptionTranslator.java:61)
at org.springframework.dao.support.DataAccessUtils.translateIfNecessary(DataAccessUtils.java:242)
at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:153)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)

解决:通过添加注解@Transactional

@Transactional
@Modifying//update和delete的时候必须标
@Query(value = "update mic_line set rod_no=?1 where line_no=?2",nativeQuery = true)
    void updateRod(String rodNo,String lineNo);

注意,添加的是import org.springframework.transaction.annotation.Transactional。

以上是关于jpa自定义修改的主要内容,如果未能解决你的问题,请参考以下文章

VSCode自定义代码片段——CSS选择器

VSCode自定义代码片段6——CSS选择器

从数据库为 JPA 实体生成自定义代码

VSCode自定义代码片段(vue主模板)

VSCode自定义代码片段——声明函数

VSCode自定义代码片段——.vue文件的模板