0

Jax-RS (Jersey) の安らかな Web アプリ内で mybatis を使用しています。したがって、自動的に、セッションまたは状態管理はありません。

質問は、 mybatis のキャッシュ機能をどのように使用できますか?

4

1 に答える 1

3

MyBatis でのキャッシングは非常に簡単です。ドキュメントに従って(ユーザーマニュアルの42ページhttp://mybatis.googlecode.com/svn/trunk/doc/en/MyBatis-3-User-Guide.pdf

デフォルトでは、パフォーマンスを向上させ、循環依存関係を解決するために必要なローカル セッション キャッシュを除いて、キャッシュは有効になっていません。2 番目のレベルのキャッシュを有効にするには、SQL マッピング ファイルに次の行を追加するだけです: MyBatis 3 - ユーザー ガイド 6 June 2011 43

<cache/>

文字通りそれだけです。

これを行っているときに私が持っていた一般的な落とし穴:

マッパーでキャッシュ要素を追加します。依存エンティティがある場合は、必要に応じて明示的にキャッシュをフラッシュしてください。フラッシュは、キャッシュ要素を設定したマッピング内の要素の挿入、更新、削除で既に行われていますが、別の xml マッピングで定義された更新/削除/その他のために、キャッシュをフラッシュする必要がある場合があります。

基本的に、キャッシュについて考えるときは、「このエンティティが変更されたときに、別のマッピングにあるエンティティのキ​​ャッシュをフラッシュする必要があるか?」と自問する必要があります。答えが「はい」の場合は、単にキャッシュするのではなく、cache-ref 要素を使用します。

ドキュメントの45ページからの例:

<cache-ref namespace=”com.someone.application.data.SomeMapper”/>
于 2011-09-27T17:41:38.727 に答える