0

我只想知道是否可以将 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 设置为“验证”,并且在验证数据库时收到此错误消息:

由 HibernateException 引起:列 iduser 的用户配置文件中的列类型错误。找到:主要,预期:int8

4

1 回答 1

3

我对 GORM 验证并不完全熟悉。可能必须设置一些额外的逻辑来映射验证规则。然而,关于你的错误的一件事立刻让我想到了。

由 HibernateException 引起:列 iduser 的用户配置文件中的列类型错误。找到:主要,预期:int8

现在,您的域甚至不是“主”,而是“主键 ID”。所以 GORM 不仅没有映射它,甚至没有找到正确的标签。

我要做的第一件事是更改您的命名约定,使其全部为小写字母和_。域变为 primary_key_id 和 general_name。看看这能让你走多远,然后探索你还需要做什么才能让 GORM 处理它。

于 2013-10-28T09:05:35.097 回答