Как определить столбец идентификаторов UUID, который соответствует как MySQL 8.4, так и H2JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Как определить столбец идентификаторов UUID, который соответствует как MySQL 8.4, так и H2

Сообщение Anonymous »

Я пытаюсь реализовать таблицу, которая использует UUID вместо long в качестве столбца идентификаторов.
Реализация long id работает отлично, включая сквозные тесты Spring MVC:

Код: Выделить всё

@Getter
@Setter
@Entity
@Table(name="myrecords")
public class myrecord {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private long id;
Когда я определил, что таблица будет использовать UUID вместо long в качестве столбца идентификаторов:

Код: Выделить всё

@Getter
@Setter
@Entity
@Table(name="myrecords")
public class myrecord {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id", columnDefinition = "BINARY(16) DEFAULT (UUID_TO_BIN(UUID()))")
private UUID id;
Приложение продолжает работать по назначению с базой данных MySQL 8.4.3, но тестируется на работу с базой данных в памяти H2, теперь < Strong>Fail, потому что H2 не поддерживает columnsDefinition = "BINARY(16) DEFAULT (UUID_TO_BIN(UUID()))".
Чтобы удовлетворить оба MySQL и H2 (для производства и тестирования соответственно), мои исследования показали, что мне, возможно, придется изменить стратегию @GeneratedValue на GenerationType.AUTO или использовать собственный генератор идентификаторов (

Код: Выделить всё

@GenericGenerator
) для UUID.
Однако при этом я потеряю преимущество оптимизации MySQL 8 для UUID: https://dev.mysql.com/blog-archive/ mysql-8-0-uuid-support/
Каков рекомендуемый подход к определению столбца идентификаторов UUID, чтобы он удовлетворял требованиям как MySQL 8.4, так и H2?

Подробнее здесь: https://stackoverflow.com/questions/792 ... 8-4-and-h2
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»