GORM属性和Postgres字段是域数据类型

时间:2013-07-11 02:16:11

标签: java grails jpa jdbc gorm

我只想知道是否可以将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

1 个答案:

答案 0 :(得分:3)

我对GORM验证并不完全熟悉。可能必须设置一些额外的逻辑以在验证规则中进行映射。但是关于你的错误的一件事马上就跳出来了。

  

由HibernateException引起:列iduser的userprofile中的列类型错误。发现:primary,expected:int8

现在,您的域甚至不是“主要”,而是“主要密钥ID”。所以GORM不仅没有映射它,甚至没有找到合适的标签。

我要做的第一件事是改变你的命名约定,以便它是所有小写和_的。域成为primary_key_id和general_name。看看这对你有多大帮助,然后探索你还需要做些什么来让GORM来处理它。