かとじゅんの技術日誌

技術の話をするところ

次のバージョンでわかりやすい関連プロパティ名とAbstractEntityが使えるようになります。

id:taediumさんの力でS2JDBC-Genがどんどんよくなってきています。(以下の話は現行のリリース版ではなく、SVNのTrunkにあるバージョン,つまり次期バージョンで試した結果になります。ご注意を)

わかりやすい関連プロパティ名

https://www.seasar.org/issues/browse/CONTAINER-264
対応されたということで、 

同じテーブル宛ての複数の外部キーを持っている場合、これまではuser1, user2というプロパティ名になっていましたが、次のバージョンで以下のようにcreateUser, updateUserというようにわかりやすくなります。

	/** createUserIdプロパティ */
	@Column(precision = 19, nullable = false, unique = false)
	public Long createUserId;

	/** updateUserIdプロパティ */
	@Column(precision = 19, nullable = false, unique = false)
	public Long updateUserId;

	/** createUser関連プロパティ */
	@ManyToOne
	@JoinColumn(name = "create_user_id", referencedColumnName = "user_id")
	public User createUser;

	/** updateUser関連プロパティ */
	@ManyToOne
	@JoinColumn(name = "update_user_id", referencedColumnName = "user_id")
	public User updateUser;

AbstractEntity

以前、要望させていただいた件です。antから見えるクラスパスにAbstractEntityをおいて、gen-entityのenititysuperclassnameにクラス名を与えるだけです。AbstractEntityに定義されているプロパティは各エンティティクラスでは生成されないようになります。

<gen-entity
      rootpackagename="${rootpackagename}"
      entitypackagename="${entitypackagename}"
      javafiledestdir="${javafiledestdir}"
      javafileencoding="${javafileencoding}"
      env="${env}"
      jdbcmanagername="${jdbcmanagername}"
   	  enititysuperclassname="hoge.AbstractEntity"

      classpathref="classpath">
</gen-entity>

非常にいい感じになってきましたね。
S2JDBCの使い勝手よくなって、どんどん利用頻度が上がりそうです。