0
私は、IDなどの主要顧客でオブジェクトをキャッシュする方法のレベルのキャッシュインスタンスフィールドをキャッシュキーにしていますか?
public class Customer {
private Long id;
@Cacheable("customer",key="this.id")
public CustomerAddress findCustomerAddress() {...}
}
ためorg.springframework.cache.annotation.Cacheable
を使用してメートル。しかし、私はメソッドパラメータとしてIDを持っていません。私はインスタンスフィールドとして持っていますか?
それぞれの「顧客」は、Springで管理されていますか?より一般的なアプローチは、ドメインオブジェクト(通常はSpringによって管理されない)上ではなく、サービス/ DAO層で '@ Cacheable'を使用することです。つまり、 'findCustomerAddress'をサービスレイヤーに移動し、ユーザーのIDを入力パラメーターとして送信することで、この問題を解決できます。 – kryger
はい、お客様は春に管理されたBeanです。このコードはサービスレイヤーにのみ存在します。私はちょうど私が達成したいものを与えた – emilly
CustomerAddress.idはキャッシュキーとして使用するプロパティですか? –