コードの自動生成って皆さんやっていますか?というか、.NET界隈では当たり前なのでしょうか。
今回のプロジェクトではHibernateというORマッパーを使用しているのですが、DBのメタデータからマッピング対象のJavaBeanクラスを自動生成してくれる周辺ツールもあり、大変ありがたく使っています・・・?
Hibernate Toolsというツールを使っているのですが、生成されるコードの命名規約やJavadocのルールがどうも気に食わないんですよね。コーディング規約も用意していて、しかもJavadocの未定義は警告っていうようにEclipseの設定を行っているので、黙っていると警告だらけになり、本来の致命的な警告が見えなくなります。
そこでツールを調べると、ツールにReverseEngineeringStrategyというクラスのサブクラスを指定することで、DBのメタデータをJavaの名前に変換するルールを変更できるではありませんか。カラムに付随するJavadoc生成のためのメタデータの生成も可能です。しかし・・・n:1マッピングには対応できるのですが、1:nマッピングには対応できないのです。これってどうやるんだろう・・・難しい・・・
どうも海外製ツールは日本人の好みに合わせては作られていない事が多いので、カスタマイズする必要があります。今回もソースコードをプロジェクトにインポートしてデバッグしながらコード生成の調査を行っています。何か効率のいい方法ってないものですかね。
自動生成部分にはコーディング規約を適用しないとか、警告の対象外にするしかないのかな・・・自動生成ツールに3日くらいかけても、DBの変更が発生するたびに工数を稼げるので、確実に得するのは分かっているんですが、これ以上時間もかけられないかなと感じているところです。