国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

springboot - Spring Boot RedisはカスタムIDを使用してハッシュオブジェクトを保存する問題
阿神
阿神 2017-05-16 13:20:12
0
1
1960
  1. 使用スプリングブーツ関連情報

現(xiàn)在使用されている Spring Boot のバージョンは 1.5.2.RELEASE, 數(shù)據(jù)庫操作使用的是 spring-boot-starter-data-jpa,redis使用的是spring-boot-starter-data-redis

データベース操作にはSpring Bootが提供するJPAリポジトリを使用し、redisはRedisリポジトリを使用します。

一般的なシナリオは、JPA を通じてデータを mysql に保存し、成功した後に Redis のハッシュ オブジェクトを更新することです。

Spring Data Redis リポジトリの公式ドキュメントの紹介によると、エンティティを構(gòu)成する必要があります。

2.関連コード

例として注文を保存すると、DTO を渡し、jpa メソッドを呼び出してデータベースに書き込み、成功後にキャッシュに書き込みます。
メインコードは次のとおりです:

メインファイルでキャッシュを有効にするために使用します
@EnableRedisRepositories(basePackages = {"com.test"})
@EnableCaching

リーリー

RedisConfig はいくつかのキャッシュ関數(shù)を書き換えます

リーリー

OrderService は、save メソッドを呼び出してデータをデータベースに保存します。このフォームはここで使用されます@CachePut注解,生成的key的主鍵是order:100。 リーリー

エンティティの設定は次のとおりです。ここでは JPA 構(gòu)成と Redis 構(gòu)成の両方が使用されます。これは少し曖昧で、正しいかどうかはわかりません。

リーリー

私が今抱えている主な問題は:

1)

.Order實體配置中,如果我在Id上配置了 redis 的 ID 注解 @org.springframework.data.annotation.Id, 生成的redis key類似這樣 order:1222702657038933405, 我想要的效果是生成的key直接使用訂單id,類似這樣 order:100

サービス

に設定がありますが、有効になりません。 @CachePut(value = "order", key = "#order.id")

2) デバッグ時に、生成されたオブジェクトに ID がある場合でも、式の id 屬性が存在しないことが報告されることがわかりました

リーリー

3) redis によって作成されたキーが間違っているという問題はさておき、redis オブジェクトは正常に保存できますが、データベース レコードが正常に作成されていないことがわかりました。 Order エンティティの

注釈を削除すると、データベース レコードは正常に作成できますが、キャッシュは正常に作成できません。 @RedisHash(value = "order")

阿神
阿神

閉關修行中......

全員に返信(1)
給我你的懷抱

まず第一に、キーは屬性名である必要があります

リーリー

次に、@RedisHash はオブジェクトを Redis に永続化するために使用されます。ここで使用したいのは永続化ではなく Redis キャッシュであるため、RedisHash とは関係ありません。

いいねを押す +0
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート