[例外解決] キャッシュ エラー: キャッシュ操作に対して Null キーが返されました (おそらく、クラスで名前付きパラメータを使用している可能性があります)

キャッシュ操作ソリューションに対して Null キーが返されました

1. 背景説明

テクノロジースタック: Springboot(2.5.14) + MQTT(5.x) + キャッシュ + MySQL

プロジェクトには、デバイス ID に基づいてデバイスの詳細をクエリするというメソッドがあります。これは非常に頻繁に使用される機能です。データベースへの負荷を軽減するために、キャッシュ テクノロジの使用を考えるのは自然なことです。

ここに画像の説明を挿入

2. エラー内容

ここに画像の説明を挿入

キャッシュ操作に対して Null キーが返されました (デバッグ情報のないクラスで名前付きパラメータを使用している可能性があります?)

詳細なエラー情報を次の図に示します。

ここに画像の説明を挿入

3、エラーの理由

ここに画像の説明を挿入

@Cacheable(key = "#id", unless = "#result==null")

アノテーション内のキーの値、つまり id 値が null です。つまり、このメソッドの入力パラメータ id が空です。メソッドを呼び出すときに、null 値を渡すことはできません。null 値が渡された場合、 、上記のエラーが報告されます。

4. 解決策

このメソッドを呼び出すときは、まず id が空かどうかを判断し、id が空でない場合にこのメソッドを呼び出します。

例えば:
ここに画像の説明を挿入

この記事は終わりです!

おすすめ

転載: blog.csdn.net/weixin_44299027/article/details/131978708