Executing an update/delete query; nested exception is javax.persistence.TransactionRequiredException: Executing an update/delete query
在用Spring JPA的时候,用到了@Query注解,在自定义INSERT语句的时候出现了问题:
public interface ApplicationRepository extends JpaRepository<Application, BigInteger> {
@Modifying
@Query(value = "INSERT INTO report(aaa,bbb) VALUES " +
" (?1, ?2)",nativeQuery = true)
void InsertDataIntoReport(String s1,String s2);
}
报错:Executing an update/delete query; nested exception is javax.persistence.TransactionRequiredException: Executing an update/delete query。
解决方案就是在该接口前加上另一个注解**@Transaction**
!!!@Transaction必须是org.springframework.transaction.annotation.Transactional,
而非javax.transaction.Transactional.
import org.springframework.transaction.annotation.Transactional;
@Transaction
public interface ApplicationRepository extends JpaRepository<Application, BigInteger> {
@Modifying
@Query(value = "INSERT INTO report(aaa,bbb) VALUES " +
" (?1, ?2)",nativeQuery = true)
void InsertDataIntoReport(String s1,String s2);
}
本文探讨了在使用Spring JPA进行自定义INSERT查询时遇到的TransactionRequiredException,重点在于如何通过添加@Transactional注解来解决此问题,包括区分Spring和JTA的Transaction注解。
6451

被折叠的 条评论
为什么被折叠?



