接手一个企业项目.使用WAS6.1 ,选择了Spring + openJPA + Struts2 这么一个组合
在使用过程中,一直发现存在查询记录时,会生成相等记录数的update语句. 虽然对程序本身没有影响,但是感觉还是怪怪的.
还一度怀疑是不是因为使用了EntityListener造成的.删除了也没有用,排除listener.
浏览网络,检索了一下, 有一个问同一问题的,但是没有回答.
这个
Spring配置中transactionAttributes的意义 文章中出现了一句话:
使用上述配置,在JPA打出的日志中显示每次查询时都要进行更新操作,查阅相关spring 的资料后发现
看来是因为Spring事务配置不当造成的.
把原先的全部使用事物,变成 get find 时 只支持事务,不新建事务,问题得到解决.
<tx:method name="get*" propagation="SUPPORTS"/>
<tx:method name="load*" propagation="SUPPORTS" />
<tx:method name="list*" propagation="SUPPORTS" />
<tx:method name="find*" propagation="SUPPORTS"/>
<tx:method name="*" propagation="REQUIRED" rollback-for="Exception"/>
周一组织测试一下.看看还有没有其他要注意的.