Doma 1.13.0 リリース

Java6対応のDaoフレームワーク Doma 1.13.0 をリリースしました。
ダウンロードはこちらからどうぞ。

Mavenをご利用の方はこちらを参照ください。

以前のバージョン(1.12.0)からの変更点は以下のとおりです。

Bug

  • [DOMA-220] - [Demo] tutorialのpom.xmlで依存するライブラリがまちがっているのを修正しました。
  • [DOMA-221] - [Core] 特定の実行環境でSQLファイルを見つけられない問題に対応しました。
  • [DOMA-222] - [Core] Daoのメソッドに対応するSQLファイルのパスがディレクトリの場合に存在チェックのエラーにならない問題に対応しました。

Improvement

  • [DOMA-223] - [Core] DomainアノテーションでfatoryMethodを指定した場合、注釈されたクラスをabstractにできるようにしました。

[DOMA-223]の例です。

@Domain(valueType = int.class, factoryMethod = "of")
public abstract class Salary {

    private final int value;

    private Salary(int value) {
        this.value = value;
    }

    public int getValue() {
        return value;
    }

    public static Salary of(int value) {
        if (value > 10000000) {
            return new BigSalary(value);
        }
        return new SmallSalary(value);
    }

    public abstract int calculateIncomeTax();

    private static class SmallSalary extends Salary {
        private SmallSalary(int value) {
            super(value);
        }

        public int calculateIncomeTax() {
            ...
        }
    }

    private static class BigSalary extends Salary {
        private BigSalary(int value) {
            super(value);
        }

        public int calculateIncomeTax() {
            ...
        }
    }

}

これまでは、@Domainが付いていたら問答無用でabstractを不可にしていたのですが、staticなファクトリメソッドを使う場合はファクトリメソッドを持つクラスを抽象クラスにしたくなることも多いので今回のバージョンから認めることにしました。