0

休止状態を使用して、Web サービスから一連のオブジェクトを保存しています。

オブジェクトが受信されるたびに、休止状態を使用して保存しています。

オブジェクトの受信はトランザクションにラップされ、最終オブジェクトの受信後にすべてのオブジェクトがデータベースに表示されます。

現在、保存時に各オブジェクトをデータベースに表示しようとしています。私はこれを達成しようとしました

getHibernateTemplate().saveOrUpdate( foo );

getHibernateTemplate().flush();
getHibernateTemplate().clear();

私の理解では、これにより、休止状態のキャッシュの値が削除され、値がデータベースに書き込まれるはずです。

学びや指示はありますか?

4

2 に答える 2

0

まだトランザクション内にいる場合は、トランザクションを開いたセッションまたは接続のみがレコードを表示できます。一部のデータベースでは、ダーティ/コミットされていない読み取りを行うと、別のセッションからそれらが表示されるはずです。フラッシュ後に同じ Hibernate セッションを使用して選択を実行し、それが実際にデータベースにあることを確認します。主キーでクエリを実行しないでください。キャッシュから取得する可能性があります。

于 2009-01-23T04:57:35.523 に答える