3

自分で作成する代わりに、Netbeans でマッピング ファイルと POJO を生成しました。継承クラスの代わりに派生クラスを使用することは可能ですか? 例は次のようになります。

Person.hbm.xml - mapping file

Person.java - generated class (strategy class per table)

PersonExtended - class that extends Person.java

したがって、新しいオブジェクトを作成すると:

PersonExtended personextended = new PersonExtended(<parameters>);

次のようなメソッドを呼び出すことができますか?

session.save(personextended) or session.delete(personextended)

?

このシナリオは賢明ですか、それとも生成されたクラスに必要なコードを追加する必要がありますか? 助けや提案を前もってありがとう。

- - - -編集 - - - -

私のデータベースには、継承としてマップできる典型的な構造がありません。追加のメソッドをエンティティのメインの Java クラスから分離したいだけです。

よろしく、サス。

4

1 に答える 1

2

hbm.xml ファイルを使用して、拡張クラスをどのようにマップするかを hibernate に指示する必要があります。Hibernate がポリモーフィズムに使用する戦略によっては、記述子の値を割り当てる必要がある場合があります。「クラスごとのテーブル」、「具象クラスごとのテーブル」、「サブクラスごとのテーブル」として知られるサブクラスを使用する場合、3 つの異なる戦略があります。

<subclass>または<joined-subclass>要素 を使用して、hbm-xml ファイルでサブクラスを定義できます。

hbm.xml ファイルを正しく定義した場合は、session.save(new PersonExtended())または sth を使用できます。

ここでこれを読むことができます: http://docs.jboss.org/hibernate/core/3.3/reference/en/html/inheritance.html

それが役に立ったことを願っています..

于 2010-11-25T23:18:03.413 に答える