【发布时间】:2013-07-11 02:16:10
【问题描述】:
我只是想知道是否可以将 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 设置为“验证”,并且在验证 db 时收到此错误消息:
由 HibernateException 引起:用户配置文件中列 iduser 的列类型错误。找到:主要,预期:int8
【问题讨论】:
-
对此不确定,但我认为如果您在域类中将 long iduser 更改为 Integer iduser(将数据类型更改为整数),那么它应该可以验证。
-
我尝试将其更改为整数,但没有成功。
-
你的数据库中是否有现有的表,并且你必须将你的应用程序与它连接起来?,因为我试图用 iduser: bigint-> default: nextval('user_profile_check_iduser_seq': :regclass),并且使用相同的域对象我能够验证它:)
-
是的,如果我没有在数据源中将 dbCreate 设置为“验证”,我可以将我的应用程序连接到数据库并检索数据。我只是把它留空。这是我的表的样子: CREATE TABLE security.userprofile ( iduserprofile "Primary Key Id" NOT NULL DEFAULT nextval('security.userprofile_seq'::regclass), username "General Name" NOT NULL, password "General Name" NOT NULL , CONSTRAINT userprofile_pkey PRIMARY KEY (iduserprofile) ) WITH (OIDS=FALSE);
标签: java grails jpa jdbc grails-orm