Свойства GORM и поля Postgres - это тип данных домена

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

Класс домена:

class Userprofile {

long iduser
String username

static mapping = {
    datasource 'ALL'
    id name: 'iduser'
    version false
}
}

Стол в постгрес:

security.userprofile
(

iduser "Primary Key Id" NOT NULL DEFAULT nextval('security.userprofile_seq'::regclass),

username "General Name" NOT NULL,

)

CREATE DOMAIN "Primary Key Id" AS bigint;

CREATE DOMAIN "General Name" AS character varying(100) COLLATE pg_catalog."default";

Я установил dbCreate для "проверки" в источнике данных, и я получал это сообщение об ошибке при проверке БД:

Вызвано HibernateException: неверный тип столбца в userprofile для столбца iduser. Найдено: первичное, ожидаемое: int8

1 ответ

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

Вызвано HibernateException: неверный тип столбца в userprofile для столбца iduser. Найдено: первичное, ожидаемое: int8

Теперь ваш домен даже не "первичный", а "первичный ключ". Таким образом, GORM не только не может отобразить его, но даже не может найти правильный ярлык.

Первое, на что я хотел бы обратить внимание, это изменить соглашение об именах так, чтобы оно было в нижнем регистре и _. Домены становятся primary_key_id и general_name. Посмотрите, как далеко это продвинет вас вперед, а затем изучите, что еще нужно сделать, чтобы GORM справился с этим.

Другие вопросы по тегам