3

私は休止状態を使用していますが、別の列に依存する増分値を生成する良い方法があるかどうか知りたいです。たとえば、orderNumber that depends on account_id次のとおりです。

id **orderNumber** account_id

1   1           1

2   2           1

3   1           2

4   2           2

固定エンティティ名の代わりに動的な値 (account_id) を保持したいのですTABLE generatorが。pkcolumnValue

前もって感謝します。

4

1 に答える 1

1

エントリが追加された順序を追跡しようとしているようですか?

これを行うための 1 つの潜在的な解決策は、次のように @OrderColumn を使用してエンティティをマップすることです。

@Entity
@Table(name="ACCOUNT")
public class Account {
    @Id @GeneratedValue @Column(name="a_id") private long id;

    @OneToMany
    @OrderColumn(name="idx")
    private List<OrderLine> orderLines;

    // other stuff
}

@Entity
@Table(name="ORDERLINE")
public class OrderLine {
    @Id @GeneratedValue @Column(name="ol_id") private long id;

    // other stuff
}

これにより、アカウントのテーブルと、次のようなオーダーラインを含むテーブルが作成されます。

**ORDERLINE**
ol_id    a_id     idx
65473    67890    0
76843    67890    1
103473   67890    2
12563    12345    0

リストからアイテムを削除して永続化するたびに、idx 列を更新する必要があります。なんらかの理由で idx 値にギャップが生じた場合、ギャップがある場所の NULL エントリを含むリストが作成されます。結果を Java リストの正しい位置に戻そうとするため、これは 0 から始まる番号付けであることに注意してください。

于 2014-09-26T09:52:08.317 に答える