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 が空でない場合にこのメソッドを呼び出します。
例えば:
この記事は終わりです!