Свойства 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 справился с этим.