Hatena::Groupseasarproject

S2できるかな?

2009-08-07

s2jdbc-gen-build.xmlにちょっと書き足して、エンティティだけ作る

コマンドラインでs2jdbc-gen-build.xmlがあるディレクトリまで移動して、以下のコマンドを打つと、エンティティ、Namesクラス、サービスクラス、テストケースまで一括で自動生成してくれます。

> ant -f s2jdbc-gen-build.xml gen-entity

ただ、便利なんですけど、エンティティ自動作成されたそのままじゃなくて、ちょっと変更したいんですよね。 状態を表すフィールドはString型じゃなくenum切って使いたいし…。

なので、自分は、s2jdbc-gen-build.xmlに以下のような記述を書き足しています。

  <target name="dump">
     // ~省略
  </target>

  <target name="entity-only">
    <gen-entity
      rootpackagename="${rootpackagename}"
      entitypackagename="${entitypackagename}"
      javafiledestdir="${javafiledestdir}"
      javafileencoding="${javafileencoding}"
      env="${env}"
      jdbcmanagername="${jdbcmanagername}"
      classpathref="classpath"
    />
    <!-- セキュリティの設定によっては以下の refresh タスクに時間がかかる場合があります.
      その場合は refresh タスクを削除してください.-->
    <refresh projectName="${projectname}"/>
  </target>

  <target name="gen-names">
    <gen-names
      classpathdir="${classpathdir}"
      rootpackagename="${rootpackagename}"
      entitypackagename="${entitypackagename}"
      javafiledestdir="${javafiledestdir}"
      javafileencoding="${javafileencoding}"
      env="${env}"
      jdbcmanagername="${jdbcmanagername}"
      classpathref="classpath"
    />
    <!-- セキュリティの設定によっては以下の refresh タスクに時間がかかる場合があります.
      その場合は refresh タスクを削除してください.-->
    <refresh projectName="${projectname}"/>
  </target>

こう書くことで、

> ant -f s2jdbc-gen-build.xml entity-only

と打って、エンティティを自動作成、それを修正後に、

> ant -f s2jdbc-gen-build.xml gen-names

と打って、Namesクラスを自動作成しています。

トラックバック - http://seasarproject.g.hatena.ne.jp/halflite/20090807