Поскольку стратегия и UUIDGenerator устарели, это новый генератор UUID:
@GenericGenerator(
name = "UUID",
type = org.hibernate.id.uuid.UuidGenerator.class
)
При использовании этого я получаю следующую ошибку:
Параметр 0 конструктора в org.hibernate.id.uuid.UuidGenerator требуется bean-компонент типа org.hibernate.annotations.UuidGenerator, который невозможно найти
Мне не удалось найти ничего соответствующего этому в документации.
Для полного раскрытия используется весь блок аннотаций:
@Id
@GeneratedValue(strategy = GenerationType.AUTO, generator = "UUID")
@GenericGenerator(name = "UUID", type = org.hibernate.id.uuid.UuidGenerator.class)
@Column(...)




Я действительно предлагаю вам использовать @UuidGenerator вместо
@GeneratedValue(strategy = GenerationType.AUTO, generator = "UUID")
@GenericGenerator(name = "UUID", type = org.hibernate.id.uuid.UuidGenerator.class)
Что-то вроде этого:
@Id
@UuidGenerator
private UUID id; // or String
Потому что если вы проверите java docs аннотацию, вы увидите, что @UuidGenerator используйте
@IdGeneratorType( org.hibernate.id.uuid.UuidGenerator.class ) то, что вам нужно.
Что касается проблемы, я действительно не знаю, в чем может быть проблема, но решение, которое я предлагаю, поможет вам выполнить эту замену, указав @UuidGenerator, мы можем выбрать конкретную версию UUID для генерации.
А также некоторая мотивация к его использованию описана в 8.5. Пользовательские генераторы
Эти API являются новыми в Hibernate 6 и заменяют классический интерфейс IdentifierGenerator и аннотацию @GenericGenerator из старых версий Hibernate.
@UuidGenerator Более гибкий генератор для RFC 4122 UUID.
Спасибо. Более гибкий означает, что вы можете настроить больше с помощью
@UuidGenerator, а не с помощью@GenericGenerator. Можно подробнее об этом вкратце?