Есть ли способ переопределить двоичную длину UUID от 255 до 16 глобально в проекте с начальной загрузкой? - PullRequest
1 голос
/ 25 июня 2019

Я хочу использовать двоичный UUID в базе данных MariaDB, используемой для проекта весенней загрузки, вместо использования varchar uuid.На данный момент я могу создавать, сохранять и искать двоичный UUID, переопределив длину столбца до 16, но я должен вручную поместить аннотацию @Column(length=16) в любое поле UUID.

Есть ли способглобально сделал эту модификацию в проекте?Другими словами, существует ли способ, что для всех полей UUID в проекте jpa / hibernate создает столбец «двоичный (16)» вместо «двоичный (255)»?

Моя проблема заключается в том, чтопо умолчанию UUID преобразуется в двоичный код (255) в MariaDB, и с этой конфигурацией запросы репозитория JPA не могут найти никаких данных при поиске по полю UUID.

Для выполнения запросов к репозиториям Jpa,Я должен добавить @Column(length=16) в любое поле UUID.

Я пытался использовать "@Converter", но аннотацию Convert не следует использовать для указания преобразования следующих объектов: атрибуты Id, атрибуты версии,атрибуты отношений и т. д. И он не работает с полем отношений uuid.

Я также пытался использовать свой собственный тип спящего режима (пример здесь: https://www.maxenglander.com/2017/09/01/optimized-uuid-with-hibernate.html), но запросы к репозиториям jpaничего не найти.

Теперь у меня есть это: Моя абстрактная сущность:

public abstract class GenericEntity {

    @Id
    @GeneratedValue(generator = "uuid2")
    @GenericGenerator(name = "uuid2", strategy = "org.hibernate.id.UUIDGenerator")
    @Column(length = 16)
    private UUID id;

    //...
}

При использовании uuid в другом объекте:

public abstract class AnotherEntity extends GenericEntity {
    @NotNull
    @Column(length = 16)
    private UUID owner;
    //...
}

I'mищу путьпереопределить генерацию поля UUID, не помещая "@Column (length = 16)" везде.

Было бы действительно здорово избежать ошибок и / или пропусков при использовании типа UUID в других функциях.

Большое спасибо!

...