Генерация схемы Hibernate на PostgreSQL: неверный тип столбца UUID вместо INET - PullRequest
0 голосов
/ 26 июня 2018

Я полагаюсь на создание схемы гибернации как часть рабочего процесса, так как изменения в модели довольно велики с каждым коммитом.Я использую сгенерированную схему для завершения сценариев, используемых для среды тестирования.

Используемая база данных - PostgreSQL.Я использую настраиваемый тип postgres INET для одного из столбцов (я сохраняю значения как IPv4, так и IPv6. Мне нужна проверка типа, которую он предлагает.)

Для этого я использую настраиваемый режим гибернации.UserType (InetAddressType.java.)

В сущности я использую специфичный для hibernate TypeDef, чтобы зарегистрировать пользовательский UserType и аннотировать столбец со значением ip с помощью Type как видно из Lamp.java

@Entity
@TypeDef(name = "inet", typeClass = InetAddressType.class)
public class Lamp {
    @Type(type = "inet")
    public InetAddress getIpAddress() {
        return ipAddress;
    }

Пользовательский тип пользователя хорошо работает со схемами, сгенерированными из спящего режима.Тем не менее, когда дело доходит до автоматической генерации, hibernate решает, что правильный тип - UUID:

create table lamp (id int8 not null, ip_address uuid, primary key (id))

Есть ли способ указать hibernate использовать INET вместо UUID?

Спящая версия - 5.2.17.Final.

1 Ответ

0 голосов
/ 26 июня 2018

Просто используйте @Column аннотацию с параметром columnDefinition, например:

@Column(columnDefinition = "inet")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...