Реализация long id работает отлично , включая сквозные тесты Spring MVC:
Код: Выделить всё
@Getter
@Setter
@Entity
@Table(name="myrecords")
public class myrecord {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private long id;
Код: Выделить всё
@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;
тестирует работу с базой данных в памяти H2, теперь не работает, поскольку H2 не поддерживает columnsDefinition = "BINARY(16) DEFAULT (UUID_TO_BIN(UUID()))".
Чтобы удовлетворить требования MySQL и H2 (для производства и тестирования соответственно), мое исследование показало, что мне может потребоваться прибегните к изменению стратегии @GeneratedValue на GenerationType.AUTO или используйте собственный генератор идентификаторов (
Код: Выделить всё
@GenericGeneratorОднако при этом я потеряю преимущество оптимизации 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
Мобильная версия