Doma-Gen のエンティティクラスに共通のスーパークラスを指定する機能でハマったこと

Doma - Domaプロジェクトへようこそ という O/R マッパーを使っているのですが、これの開発支援ツールとして、Doma - Doma-Gen というツールがあります。


そのツールには、Doma - Genタスク という機能があるのですが、これでハマったのでメモ。


どんな事象かと言うと、

親クラスで定義したプロパティが子クラスにも定義され重複してしまう。
Doma-Gen のバージョンが 1.4 〜 1.6 だと重複しない。1.7 以降だと重複する。

というような事が起きました。
Twitter で呟いたところ、作者の方からレスがあり、色々とアドバイスを得て解決しました。
原因は、古いテンプレートファイルを使っていたためでした。


テンプレートファイルを拡張していたのですが、旧バージョンをベースにしており、最新のテンプレートファイルを元にしていなかったのでこういう事態になりました。
細かい内容は、
EntityDesc (Doma-Gen 1.35.0 API)ownEntityPropertyDescs フィールド が Ver 1.7 から追加されており、
1.7 以降ではこのフィールドを指定しなければならなかったのですが、以前のバージョンで動作していた entityPropertyDescs フィールド をそのまま利用していたために、1.4 〜 1.6 では正常に動き 1.7 以降では意図しない動きになっていました。


という訳で、テンプレートファイルも最新の物をベースに利用しましょう!
※移行ガイドとなっている DomaUpdateOperationLog - SeasarWiki にテンプレートファイル変更しました等の記載があれば非常に助かるなぁとも思います。
2010/10/20 追記:ドキュメント対応されました。ありがたいですね!