概要はSSIAです。
ここではEntityをデータベースのテーブルそのままのPOJOとします。
原因
ここではis_active_sample
という名前のカラムに対して、isActiveSample
というBoolean/booleanのフィールドを持つEntityを挿入する状況をサンプルとして書きます。
LombokでこのEntityのアクセサを生成すると、下記のサンプルのように、アクセサの名前はisが省略されたgetActiveSample
/setActiveSample
となる場合があります。
import lombok.Setter; @Setter public class Sample { private boolean isActiveSample; }
一方これはデータベースのカラム名と異なっているため、BeanPropertySqlParameterSource
やBeanPropertyRowMapper
といったマッパーはアクセサとカラム名を紐付けられず、INSERT/SELECTは失敗します。
対処
getIs...
/setIs...
という名前のアクセサを自分で実装することで、問題が解決します。
この時、自力でアクセサを実装したフィールドに対してLombokの自動生成は行われなくなります。