Java 每个帐户的Hibernate/JPA增量列
我正在使用hibernate,我想知道是否有一种好方法可以生成依赖于另一列的增量值。例如,取决于帐户id的订单号:Java 每个帐户的Hibernate/JPA增量列,java,hibernate,jpa,identifier,Java,Hibernate,Jpa,Identifier,我正在使用hibernate,我想知道是否有一种好方法可以生成依赖于另一列的增量值。例如,取决于帐户id的订单号: id **orderNumber** account_id 1 1 1 2 2 1 3 1 2 4 2 2 我想要类似于tablegenerator的东西,但要使用pkcolumnValue来保存动态值(account\u id),而不是固定的实体名称 提前感谢。您似乎在跟踪条
id **orderNumber** account_id
1 1 1
2 2 1
3 1 2
4 2 2
我想要类似于tablegenerator
的东西,但要使用pkcolumnValue
来保存动态值(account\u id),而不是固定的实体名称
提前感谢。您似乎在跟踪条目添加的顺序 一个可能的解决方案是使用@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值中出现间隙,它将为间隙所在的位置构建一个包含空条目的列表。请注意,这是基于0的编号,因为它将尝试将结果输入到java列表中的正确位置。请尝试一些方法,看看有什么不起作用。保留一个表,用帐户id和最后一个订单显示最后一个订单。在每个订单上,您必须更新/保存2个表。在你这边试试,看看有什么不起作用。