Doma 1.20.0 の機能改善について
今回のリリースは、バグ修正は1つもなく、すべて機能改善です。簡単に内容を紹介します。いずれも使い勝手が向上する修正になっていると思います。
aptで生成するメタクラスのコードの改善
エンティティのプロパティごとに2つの内部クラスを生成するコードになっていたのですが、コンパイルに時間がかかったりjarサイズが増大するといった問題点を指摘していただいたため(Domaのドメインクラスが嬉しかった話と欠点の話)、コードを改めました。具体的には、必要最低限リフレクションを活用するようにして、プロパティに対して内部クラスを生成するのをやめました。
この結果、問題点は解決されました。
エンティティのプロパティのフィールドにprivate指定可能に
これまで、非privateしか認めていなかったのですが、privateにできるようになりました。上述のメタクラスのコードの改善で、Fieldのアクセスにリフレクションを使うようにしたため、その副産物のようなものです。
こう書けるようになりました。
@Entity(naming = NamingType.SNAKE_UPPER_CASE) public class Employee { @Id private Integer employeeId; private Integer employeeNo; ... }
@AnnotateWithを柔軟に利用可能に
主にEJB 3.1で使いやすくするためのものです。
http://d.hatena.ne.jp/taedium/20111113/p1