我正在使用带有 spring 3.0.5 的休眠 3.3 并使用 JPA 事务管理器。我的场景是一个 ui 页面调用服务层上的两个 get 方法以在 UI 中呈现两个区域,请求是并行 ajax 请求。服务层中的 get 方法返回相同实体的两个“单独”列表。
List<Car> getCarsA();
List<Car> getCarsB();
我已将 JPA 事务管理器配置如下:
<tx:method name="get*" read-only="true" propagation="REQUIRED"/>
问题:当每个服务方法结束后休眠/JPA 调用 flush 时,可能会有一些集合(通过多对多映射)在方法返回的两个列表之间共享,因此会出现异常。我也在使用 OpenEntityManagerInViewFilter。如果我串行调用这些方法,我不会遇到此错误。