在我们的应用程序上进行负载测试时,我注意到如果你使用@Transactional和@Cacheable注释,那么hibernate总是会创建一个数据库事务。有没有一种简单的方法来防止这种情况? 在spring中解决这个问题的一种更为简单的方法是使用以下类/接口
以下
会发生什么致电1:
致电2:
首选结果应为:
致电1:
致电2:
答案 0 :(得分:10)
您需要更改@Transactional
和@Cacheable
方面的相对顺序。
可以使用order
和<tx:annotation-driven>
的{{1}}属性对其进行配置。有关订单值的含义,请参阅8.2.4.7 Advice ordering。