[Seasar-user:20153] 【S2Dao-CodeGen】Erwinからの生成で問題あり

溝口 [E-MAIL ADDRESS DELETED]
2010年 9月 14日 (火) 17:32:16 JST


お世話になっています。溝口と言います。

S2Dao-CodeGen 0.4.1を使用した際に思ったような生成に
ならなかったので報告です。
er/winのcsvを使用しています。
mavenを使用していて、下記の様にbuildタグを記述しています。
<plugin>
  <groupId>org.seasar.dao-codegen</groupId>
  <artifactId>maven-codegen-plugin</artifactId>
  <version>0.4.1</version>
    <configuration>
    <javaDir>src/main/java</javaDir>
    <resourceDir>src/main/resources</resourceDir>
    <inputFile>shared-data-codegen.csv</inputFile>
    <identityType>identity</identityType>
    <versionNoPropertyName>	versionNo</versionNoPropertyName>
    <packageName>any.packagename</packageName>
    <dbClass>org.seasar.codegen.dbms.MSSQLServer</dbClass>
    <importCodeDataClass>
      org.seasar.codegen.impl.ERWinCSVImportCodeData
    </importCodeDataClass>
  </configuration>
</plugin>

【事象】
BeanのPKにつく、idアノテーションがデフォルトから変更できない。
@org.seasar.dao.annotation.tiger.Id(value = org.seasar.dao.
   annotation.tiger.IdType.IDENTITY)
が
@org.seasar.dao.annotation.tiger.Id(value = org.seasar.dao.
   annotation.tiger.IdType.ASSIGNED)
で生成されてしまいます。

【原因箇所】
org.seasar.codegen.impl.ERWinCSVImportCodeData#setupPrimaryKey
で
if (codeGenConfig.getIdentityType() == null) {
を
if (codeGenConfig.getIdentityType() != null) {
に変更すれば
field.setUseIdentity(true);
field.setSequence(field.getFieldName());
等が行われ、@Idアノテーションが正しく生成されます。

以上です。


Seasar-user メーリングリストの案内