2 つの異なる Web サービスでキャッシュするために、Coherence で Hibernate L2 キャッシュを使用しています。
シナリオ
- 最初の Web サービスには、
Employee
5 つのフィールドを持つエンティティ クラスがあります - 2 番目の Web サービスには同じエンティティ クラス
Employee
がありますが、3 つのフィールドがあります。
どちらも同じテーブル/スキーマを指しており、パッケージ階層も同じです。
の新しいリクエストemployeeId=1
が 2 番目の Web サービスに来ると、データベースから値を取得し、3 つの列をキャッシュします。他の 2 を null のままにします。
リクエストemployeeId=1
が最初の Web サービスから来ると、3 つの列を指定してキャッシュから直接フェッチし、データベースでは 2 つの列に null 以外の値が含まれていても、残りの 2 つを null として返します。
これらの列をデータベースから強制的に取得する方法はありますか?
すでに試みられたアプローチ
- 両方の Web サービスの列を同じままにしておくと、問題はなくなりますが、これは私のシナリオでは受け入れられる解決策ではありません。
- 別のserialVersionを追加しようとしましたが、機能しません。
- 完全修飾名を保持することは別の方法で機能しますが、これにより、手動によるエビクションの実行にオーバーヘッドが追加されます