エントリが追加された順序を追跡しようとしているようですか?
これを行うための 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 から始まる番号付けであることに注意してください。