升级到spring 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注释被忽略了一样。对于spring 1.2.1,这是可行的。有什么想法吗?
发布于 2015-07-17 07:51:46
tl;dr
很明显,您使用的是JTA1.2的@javax.transaction.Transactional,很不幸的是,在Boot版本包含的Spring数据发布中,这种支持被破坏了。解决办法是使用Spring的@org.springframework.transaction.Transactional。
详细信息
Spring版本中包含的Spring数据发布版本为以前存在的事务错误提供了一个修复程序。这有效地“修复”了由Spring数据控制的存储库上的事务处理。
不幸的是,您显然正在使用的是对JTA1.2的@Transactional的支持。我修正了DATACMNS-732 ( Fowler、SR2和Gosling RC1中包含的bei ),并创建了一个Spring框架中的票证来改进库中的场景(由于需要复制类,我们基本上没有获得JTA1.2的支持)。
https://stackoverflow.com/questions/31440865
复制相似问题