Я полагаюсь на создание схемы гибернации как часть рабочего процесса, так как изменения в модели довольно велики с каждым коммитом.Я использую сгенерированную схему для завершения сценариев, используемых для среды тестирования.
Используемая база данных - 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
.