升级到spring boot 1.2.5后,尝试执行以下查询时会抛出异常。
引起:javax.persistence.TransactionRequiredException:执行更新/删除查询
@Modifying
@Transactional
@Query(value = "insert into some_table (some_id) VALUES (?1)", nativeQuery = true)
public void insertSomeTable(long some_id);
就好像忽略了@Transactional注释。随着春季启动1.2.1这是有效的。有什么想法吗?
答案 0 :(得分:2)
您显然正在使用JTA 1.2' @javax.transaction.Transactional
,但不幸的是,Boot Release包含的Spring Data版本中支持了它。解决方法是使用Spring Framework的@org.springframework.transaction.Transactional
。
Spring Boot版本附带的Spring Data版本为之前存在的事务错误提供了修复程序。这有效地解决了#34;存储库上的事务处理由Spring Data控制。
不幸的是,您正在使用的JTA 1.2 @Transactional
支持的切换。我已修复DATACMNS-732(包括在Fowler SR2和Gosling RC1中)并创建了ticket in Spring Framework以改善库中的场景(我们基本上没有因为没有获得JTA 1.2支持而受到影响需要复制一个类。)