Doma 1.27.1 をリリース
Doma 1.27.1 をリリースしました。
ダウンロードはこちらからどうぞ。
Mavenをご利用の方はこちらを参照ください。
以前のバージョンから移行するには移行ガイドを参照ください。
今回は、小さめのバグ修正のみを含んでいます。
リリースノート
機能紹介: SQLの式コメント内での型引数の扱い
DOMA-274について簡単に解説します。
継承関係を持つこんなクラスが2つあるとします。
public abstract class AbstractDomain<V> { protected V value; protected AbstractDomain(V value) { this.value = value; } V getValue() { return value; } }
@Domain(valueType = String.class) public class PhoneNumber extends AbstractDomain<String> { public PhoneNumber(String value) { super(value); } }
このとき、AbstractDomainの型パラメータVの実型引数はStringです。
これまで、SQLの式コメントにおいてジェネリックな型の値(AbstractDomainのvalue)にアクセスする場合、実型引数を認識していませんでした。つまり、次のような式コメントは、「Object型をパラメータにもつ@isNotEmptyメソッドが見つかりません」といったエラーになっていました。
select * from person where /*%if @isNotEmpty(phoneNumber.value) */ phoneNumber = /* phoneNumber */'03456789' /*%end */
今回の修正で実型引数を認識するようにしたので、String型をパラメータにもつ@isNotEmptyメソッドがちゃんと使えるようになりました。