プロジェクトでSpring 3およびhibernate4.2ベースの注釈構成を使用しています.2つの共通フィールドcreatedDateとupdatedDateを持つ多数のデータベーステーブル(ビューオブジェクト/エンティティ)があります。この 2 つのフィールドを分離したいと考えています。これら 2 つのフィールドをすべてのエンティティのスーパークラスとして機能するクラスに保持し、これをサブクラスごとの継承マッピングで実装することを考えました。このスーパークラスとサブクラスのエンティティ間に外部キー関係は必要ありません..誰かが例を使ってより良い解決策を提案してくれませんか..ありがとう.
2 に答える
0
スーパークラスに で注釈を付ける必要があります@MappedSuperclass
。
Hibernate ドキュメントの章から: 5.1.6.4。スーパークラスからプロパティを継承する
これ(スーパークラスからプロパティを継承)は、通常のマッピングされたエンティティ (つまり、このエンティティの特定のテーブルがない) として含めずに、技術またはビジネス スーパークラスを介して共通のプロパティを共有するのに役立つ場合があります。そのために、それらを @MappedSuperclass としてマップできます。
@MappedSuperclass
public class BaseEntity {
@Temporal(TemporalType.TIMESTAMP)
public Date createdDate;
@Temporal(TemporalType.TIMESTAMP)
public Date updatedDate;
}
@Entity
class NormalEntity extends BaseEntity {
@Id
public Integer id
...
}
于 2013-08-07T06:26:31.223 に答える