我只想知道是否可以将GORM属性映射到Postgres表中的数据类型为postgres域的字段。我在验证时收到错误。 感谢
域类:
class Userprofile {
long iduser
String username
static mapping = {
datasource 'ALL'
id name: 'iduser'
version false
}
}
postgres中的表:
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设置为“validate”,并在验证db时收到此错误消息:
由HibernateException引起:列iduser的userprofile中的列类型错误。发现:primary,expected:int8
答案 0 :(得分:3)
我对GORM验证并不完全熟悉。可能必须设置一些额外的逻辑以在验证规则中进行映射。但是关于你的错误的一件事马上就跳出来了。
由HibernateException引起:列iduser的userprofile中的列类型错误。发现:primary,expected:int8
现在,您的域甚至不是“主要”,而是“主要密钥ID”。所以GORM不仅没有映射它,甚至没有找到合适的标签。
我要做的第一件事是改变你的命名约定,以便它是所有小写和_的。域成为primary_key_id和general_name。看看这对你有多大帮助,然后探索你还需要做些什么来让GORM来处理它。