以下がJPA注釈付き型階層内のすべてのデータフィールド(および関連するゲッターとセッター)は、ビジネスロジックを実装するための抽象メソッドと一緒にスーパータイプのメンバーであります。データメンバを追加せずにこれらの抽象メソッドを実装するサブタイプはいくつでもあります。このため、単一のテーブル継承ストラテジを使用して、このタイプ階層をバックアップするデータベースが1つだけ必要です。JPA /休止状態:サブタイピング戦略対「パターン」
データの内容に基づいて、究極の目標を達成するために実装する必要があります異なる動作がある、ので、私はそれをこのようにやりました。
@Entity
@Table
@Inheritance(strategy=InheritanceType.SINGLE_TABLE)
@DiscriminatorColumn
public abstract class SuperEntity {
// Several fields and getters and setters
...
// Abstract method declarations for business logic
...
}
@Entity
@DiscriminatorValue("some value")
public class SomeSubtype extends SuperEntity {
// Implementations of abstract methods
...
}
これはJPA/Hibernateでのディスクリミネータ列のコンセプトの変容ですか?
同僚は、データの構造は、サブタイプサブタイプから変化しないので、抽象メソッドおよび対応する実装戦略パターンアプローチのように移動しなければならないと主張します。彼の考えはより良い?
私は構図を見ていましたが、それはサービス層ではちょっと混乱します。しかし、私はあなたと私の同僚に、私が上記の継承スキームが偉大ではないことをますます認めていると思います。あなたの答えに感謝の意を表します。 – simpleton