Uploaded image for project: 'S2Container'
  1. S2Container
  2. CONTAINER-148

S2JDBCでエンティティクラスの継承をしたい

XMLWordPrintable

    • Type: Icon: Improvement Improvement
    • Resolution: Won't Fix
    • Priority: Icon: Major 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

      { > @Id > @GeneratedValue(strategy = GenerationType.SEQUENCE) > public Integer id; > > public Integer departementId; > }

      >
      > @Entity
      > public class Employee extends EmployeeBase

      { > @ManyToOne > public Department department; > }

      > ---------------------------------------------------------
      >
      > ■エラーメッセージ
      > 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のコードを確認したところ、
      エンティティクラスの対象となるフィールドはそのクラスのみで、
      親クラスは対象としないようになっていました。

      親クラスのフィールドも対象にするパッチを書いて見ましたので、
      仕様の追加を検討して頂けると助かります。

            Assignee:
            higa higa
            Reporter:
            agata agata
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated:
              Resolved: