[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 メーリングリストの案内