1

我有 2 个表 A 和 B 以及一个关联表 AB

A 对 AB 是 oneToMany,B 对 AB 是 oneToMany,

我关闭了eclipselink的缓存。使用

<property name="eclipselink.query-results-cache" value="false"/>
<property name="eclipselink.cache.shared.default" value="false"/>

我从一个线程更新 A,这意味着在一个 entityManager 中更新 A

并用于entityManager.find(B.class,id)获取 B 并用于entityManager.refresh(B)强制在另一个线程(另一个 entityManager)中从 DB 读取 B 的数据

但是当我尝试使用 B.getABlist() 来获取 A 的信息时,A 的信息不是 DB 中的最新信息

所以我的问题是,我的操作有什么问题吗?

谢谢

4

1 回答 1

0

我发现了问题

我忘记在 AB 实体中为与 A 和 B 的两个 ManyToOney 关系设置 CascadeType.REFRESH

所以刷新不起作用

于 2012-08-30T00:53:46.457 回答