0

基本的に、すべての拡張エンティティの代理 ID 生成を定義する @MappedSuperclass が必要です。

@MappedSuperclass
public class BaseEntity {
    @Id
    @GeneratedValue(strategy = GenerationType.TABLE)
    private Long id;

    ...
}

EntityA、EntityB、および EntityC の 3 種類の具体的なエンティティがある場合、次のような SEQUENCE_TABLE が必要です。

SEQUENCE_NAME  |  NEXT_VAL
--------------------------
EntityA           11
EntityB           31
EntityC           101

...各シーケンスは独立しており、対応するエンティティにのみ使用されます。そんなことが DataNucleus を使えば簡単にできるのでしょうか? 理想的には、@Entity ごとに @TableGenerator を宣言することは避けたいと思います。Hibernate は「prefer_sequence_per_entity」プロパティを使用してこの動作を提供しますが、その他のいくつかの機能については DataNucleus を好みます。

4

1 に答える 1

1

短い答え:いいえ。

より複雑な答え: いいえ。とはいえ、これは少数派の機能であり、特に BaseEntity との関係がどこにあるのか、BaseEntity に対してどの継承が選択されたのか、および必要性を考慮して、使用できない状況が多くなるという大きな欠点があります。関連オブジェクトを特定できる

于 2013-06-10T07:09:53.420 に答える