Cayenneのエンティティファイルにメソッドを実装するとき

最近ではMVCモデルのMで実装することが良いとしている風潮もありますがORMマッパーであるCayenneを使用しているソフトで実装するときは注意があります。

CayenneでgenerateするエンティティクラスはDataMap.java,その親クラスの_DataMap.javaのように2種類ありますが、この内編集できるのはDataMapクラスのみです。

よく見たら_DataMap.javaのヘッダーにはこんなことが書かれています。

/** Class _EipTMemo was generated by Cayenne.
  * It is probably a good idea to avoid changing this class manually, 
  * since it may be overwritten next time code is regenerated. 
  * If you need to make any customizations, please use subclass. 
  */

次生成したら更新して消えてしまうようですね