SpringBootの@Cacheableで返り値のnullをキャッシュさせないようにする方法

技術

はじめに

こんにちは!さいけです。

今回は、「SpringBootの@Cacheableでnullをキャッシュさせないようにする方法」を紹介します。

備忘録的な記事になります。

@Cacheableでnullをキャッシュさせないようにする

@Cacheableでnullをキャッシュさせないようにするには、unlessパラメータを利用して条件付きキャッシュをします。

また、軽くunlessパラメータについて説明します。

unlessパラメータはメソッドの出力値に基づきキャッシュの制御をかけることができるオプションパラメータです。

unlessパラメータで条件式を指定すると、指定された条件はキャッシュされなくなります。

本題に戻りますが、nullをキャッシュさせないようにするには以下のようになります。

    @Cacheable(unless = "#result == null")
    public String getMember(int id) {
        ...
    }

unlessパラメーターで返り値はnullと等しいという条件式を指定しているので、nullの場合にキャッシュされなくなります。

👍🎉

おわりに

今回は、「SpringBootの@Cacheableでnullをキャッシュさせないようにする方法」の紹介をしました。

unlessパラメータで指定する条件次第では様々な条件付きキャッシュができるので、ぜひ試してみてください\(^o^)/

コメント

タイトルとURLをコピーしました