[Seasar-user:21133] Re: [s2jdbc-gen] 同一テーブル上でリレーションされる場合に例外となる。

Hideaki Numasawa [E-MAIL ADDRESS DELETED]
2011年 11月 9日 (水) 18:19:25 JST


numasawaです。

EntityTestModelFactoryImpl#getExpression(Class<?>) に

if (clazz.isArray() && clazz.getComponentType() == byte.class) {

	return "new byte[0]";
}

で対応できるとおもいます。


2011年11月9日17:41 Hideaki Numasawa <[E-MAIL ADDRESS DELETED]>:
> numasawaです。
>
> s2jdbc-gen-build.xml の <target name="gen-entity">  を実行した際のもので
> Entity クラスは自作していません。
>
> gen-entity にて作成されたEntityは確かに @Id public byte[] id; のような型になっています。
>
> http://s2container.seasar.org/2.4/ja/s2jdbc_gen/tasks/gen_entity.html
>
> の対応表を見るとサポートされていないとオカシイと思われます。
>
>
> 2011年11月9日17:25 Toshihiro Nakamura <[E-MAIL ADDRESS DELETED]>:
>> 中村(taedium)です。
>>
>> 例外は、次のように@Idを不正なプロパティ型に
>> 注釈しているために発生しているのだと思われます。
>>
>>  @Id
>>  public Hoge id;
>>
>> この例ではHoge型が不正です。
>>
>> gen-entitytestタスクは、@Idの注釈対象のプロパティ型として
>> 次の型のみをサポートしています。
>> ・boolean
>> ・char
>> ・byte
>> ・short
>> ・int
>> ・long
>> ・float
>> ・double
>> ・Boolean
>> ・Character
>> ・Byte
>> ・Short
>> ・Integer
>> ・Long
>> ・Float
>> ・Double
>> ・java.lang.String
>> ・java.math.BigDecimal
>> ・java.math.BigInteger
>> ・java.util.Date
>> ・java.util.Calendar
>> ・java.sql.Date
>> ・java.sql.Time
>> ・java.sql.Timestamp
>>
>>> numasawaです。
>>>
>>> s2jdbc-gen にて同一テーブル上でリレーションされているテーブルが存在する場合
>>> gen-entitytestタスクで以下の例外が発生します。
>>>
>>> gen-entitytestタスクを実行しなければ正常に終了します。
>>>
>>> s2jdbc-gen-build.xml はDolteng にて自動生成したもの。
>>>
>>> 環境
>>> windows XP sp3
>>> java    6.0
>>> Eclipse 3.7
>>> dolteng 0.41
>>>
>>> 以上よろしくお願いします。
>>>
>>> ----------- 以下スタック
>>> --------------------------------------------------------------
>>> [gen-entitytest] Java Result: 1
>>>
>>> BUILD FAILED
>>> C:\skyp\kouji\model-s2jdbc\s2jdbc-gen-build.xml:96: Exception in
>>> thread "main" org.seasar.extension.jdbc.gen.exception.CommandFailedRuntimeException:
>>> [ES2JDBCGen0005]コマンド(org.seasar.extension.jdbc.gen.internal.command.GenerateEntityTestCommand)の実行に失敗しました。バージョンは
>>> S2JDBC-Gen 2.4.43 です。理由はjava.lang.IllegalArgumentException:
>>> propertyClass
>>>       at org.seasar.extension.jdbc.gen.internal.command.AbstractCommand.execute(AbstractCommand.java:164)
>>>       at org.seasar.extension.jdbc.gen.internal.command.CommandInvokerImpl.invoke(CommandInvokerImpl.java:29)
>>>       at org.seasar.extension.jdbc.gen.command.CommandAdapter.main(CommandAdapter.java:61)
>>> Caused by: java.lang.IllegalArgumentException: propertyClass
>>>       at org.seasar.extension.jdbc.gen.internal.model.EntityTestModelFactoryImpl.getExpression(EntityTestModelFactoryImpl.java:205)
>>>       at org.seasar.extension.jdbc.gen.internal.model.EntityTestModelFactoryImpl.doIdValue(EntityTestModelFactoryImpl.java:142)
>>>       at org.seasar.extension.jdbc.gen.internal.model.EntityTestModelFactoryImpl.getEntityTestModel(EntityTestModelFactoryImpl.java:122)
>>>       at org.seasar.extension.jdbc.gen.internal.command.GenerateEntityTestCommand.generateTest(GenerateEntityTestCommand.java:454)
>>>       at org.seasar.extension.jdbc.gen.internal.command.GenerateEntityTestCommand.doExecute(GenerateEntityTestCommand.java:439)
>>>       at org.seasar.extension.jdbc.gen.internal.command.AbstractCommand.execute(AbstractCommand.java:162)
>>>       ... 2 more
>>>
>>> Total time: 27 seconds
>>> _______________________________________________
>>> Seasar-user mailing list
>>> [E-MAIL ADDRESS DELETED]
>>> https://ml.seasar.org/mailman/listinfo/seasar-user
>>
>> --
>> Toshihiro Nakamura <[E-MAIL ADDRESS DELETED]>
>>
>> _______________________________________________
>> Seasar-user mailing list
>> [E-MAIL ADDRESS DELETED]
>> https://ml.seasar.org/mailman/listinfo/seasar-user
>>
>


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