Как использовать UUID с Hibernate и MySQL (JPA / Hibernate / MySQL)

#java #mysql #hibernate #annotations #uuid

#java #MySQL #Гибернация #аннотации #uuid

Вопрос:

Я сталкиваюсь со следующим исключением с hibernate:

java.sql.SQLException: неверное строковое значение: ‘ xD4BRh xF09 …’ для столбца ‘id’ в строке 1

У меня есть приложение на основе Java / JPA / Hibernate / MySQL. Я хочу использовать UUID для идентификации объекта. Это происходит при попытке сохранить uuid в базе данных mysql. База данных настроена на использование utf8mb4 (и сопоставление utf8mb4_general_ci). Версия MySQL 8.0.22

Со следующим определением столбца

 @Id
@GeneratedValue(generator = "UUID")
@GenericGenerator(
        name = "UUID",
        strategy = "org.hibernate.id.UUIDGenerator"
)
@Column(name = "id", updatable = false, nullable = false)
private UUID id;
  

Я чего-то не понимаю? Спасибо!

Комментарии:

1. Какой тип базы данных вы используете для столбца id? Какой диалект гибернации вы используете? Какую версию гибернации вы используете?

2. мой тип столбца идентификатора binary(16) — MySQL57Dialect на диалекте hibernate, который я использую в настоящее время, версия hibernate — 5.4.23