Hibernate / JPA инкрементный столбец для каждой учетной записи
Я использую hibernate и хочу знать, есть ли хороший способ генерировать инкрементное значение, зависящее от другого столбца. Например:, orderNumber that depends on account_id:
id **orderNumber** account_id
1 1 1
2 2 1
3 1 2
4 2 2
Я хотел бы что-то вроде TABLE generator, но с pkcolumnValue, содержащим динамическое значение (account_id) вместо фиксированного имени сущности.
Заранее благодарю.
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, это будет постройте список с нулевыми записями для того, где находятся пробелы. Обратите внимание, что это нумерация на основе 0, потому что она попытается ввести результаты обратно в правильное положение в списке java.
Comments