-
Type: Improvement
-
Resolution: Won't Fix
-
Priority: Major
-
None
-
Affects Version/s: 2.4.19
-
Component/s: S2-Tiger
-
None
[Seasar-user:12348]で質問した件です。
AGATA Toshitaka さんは書きました:
> 縣です。
>
> S2JDBCのエンティティクラスの継承について教えてください。
>
> ベースとなるエンティティを自動生成で作成して、
> それを継承したクラスに関連などの定義を手動で行おうとしています。
>
> 以下のように継承したクラスをS2JDBCで使用すると例外が発生します。
> フィールドなどを、Employeeに移動すると問題なく動作するので、
> 親クラスのフィールドなどはS2JDBCでは認識されないという仕様なのかと
> 思っていますが、このような場面で何かよい方法はありますか?
>
> ---------------------------------------------------------
> @Entity
> public class EmployeeBase
>
> @Entity
> public class Employee extends EmployeeBase
> ---------------------------------------------------------
>
> ■エラーメッセージ
> org.seasar.extension.jdbc.exception.ManyToOneFKNotFoundRuntimeException:
> [ESSR0729]エンティティ(Employee)のプロパティ(department)が不正です。
> JoinColumnのnameで指定されている外部キー(DEPARTMENT_ID)が存在しません。
> at
> org.seasar.extension.jdbc.meta.EntityMetaFactoryImpl.resolveJoinColumn(EntityMetaFactoryImpl.java:306)
> at
> org.seasar.extension.jdbc.meta.EntityMetaFactoryImpl.resolveRelationship(EntityMetaFactoryImpl.java:246)
> at
> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196)
>
>
S2JDBCのコードを確認したところ、
エンティティクラスの対象となるフィールドはそのクラスのみで、
親クラスは対象としないようになっていました。
親クラスのフィールドも対象にするパッチを書いて見ましたので、
仕様の追加を検討して頂けると助かります。