Есть ли способ описать уникальную последовательность для каждой строки в Spring Hibernate? - PullRequest
0 голосов
/ 05 августа 2020

Я пробовал использовать составные ключи, но:

  1. Составные ключи не работают с автогенерацией
  2. @ IdClass не работает ( длинный класс не может быть построенным Spring )
  3. @ EmbeddedId работает, но проблема №1 все еще существует

В основном то, что я хочу сделать, это создать уникальную последовательность для каждой строки (ссылка на плату) , например:

+---------+-----------+------------+
| post_id | thread_id | board_link |
+---------+-----------+------------+
|       1 |         1 | board_1    |
|       2 |         1 | board_1    |
|       3 |         1 | board_1    |
|       1 |         2 | board_2    |
|       2 |         2 | board_2    |
|       3 |         3 | board_2    |
+---------+-----------+------------+

Я использую Spring Boot 2.2.6.RELEASE, PostgreSQL 12.3-2 (9.6 testcontainers) и 6.3.2 flyway-core. Все через gradle.

1 Ответ

1 голос
/ 05 августа 2020

Вы можете использовать аннотацию GeneratedValue и установить стратегию как GenerationType.SEQUENCE

@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE)
@Column(name = "id", updatable = false, nullable = false)
private Long id;
...