1

2つのテーブルAとB、および1つの関連付けテーブルABがあります

AはoneToManyからAB、BはoneToManyからAB、

そして、私はeclipselinkのキャッシュを閉じました。を使用して

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

1つのスレッドからAを更新します。つまり、1つのentityManagerでAを更新します。

そして、を使用entityManager.find(B.class,id)してBを取得entityManager.refresh(B)し、別のスレッド(別のentityManager)のDBからBのデータを強制的に読み取るために使用します。

しかし、B.getABlist()を使用してAの情報を取得しようとすると、Aの情報はDBの最新のものではありません

だから私の質問は、私の操作に何か問題がありますか?

ありがとう

4

1 に答える 1

0

私は問題を見つけました

A および B との 2 つの ManyToOney 関係について、AB エンティティに CascadeType.REFRESH を設定するのを忘れています

そのため、リフレッシュは機能しません

于 2012-08-30T00:53:46.457 に答える