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) вместо фиксированного имени сущности.



Заранее благодарю.

602   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, это будет постройте список с нулевыми записями для того, где находятся пробелы. Обратите внимание, что это нумерация на основе 0, потому что она попытается ввести результаты обратно в правильное положение в списке java.

Comments

    Ничего не найдено.