2

嗨,我在 Grails 中有以下域

类客户{
    静态映射 = {
         表“客户”
         // version 设置为 false,因为默认情况下旧数据库不可用
         版本错误
         id column:'customerid' //生成器:'identity',
    }
    长期客户
    长customergroupid
    字符串用户名
    字符串密码
    字符串名称
    弦街
    弦城
    串省
    字符串邮政编码
    字符串国家
    日期日期注册
    弦平衡
    长父代
    字符串返利
    字符串元路径
    长元水平
    整数 smsreplystatus
    整数状态
    字符串反转网址

    静态约束 = {
        客户 ID(插入:假,更新:假)
        customergroupid(最大:9999999999L)
        用户名(大小:1..20,空白:假)
        密码(大小:1..32,空白:假)
        名称(大小:1..20,空白:假)
        街道(大小:0..50)
        城市(大小:0..20)
        省(大小:0..20)
        邮政编码(大小:0..5)
        国家(大小:0..20)
        注册日期(可为空:真)
        平衡()
        parentid(最大值:9999999999L)
        父母回扣()
        元路径(大小:1..255,空白:假)
        元级别(最大值:9999999999L)
        短信回复状态(最大值:99999)
        状态(最大值:99999)
        反转网址(大小:0..50)
    }
    字符串 toString() {
        返回“${customerid}”
    }
}

我有包含现有数据的当前数据库,并使用 GRAG 映射到 GORM,但我收到此错误

原因:org.springframework.beans.factory.BeanCreationException:创建名为“transactionManager”的bean时出错:设置bean属性“sessionFactory”时无法解析对bean“sessionFactory”的引用;嵌套异常是 org.springframework.beans.factory.BeanCreationException:创建名为“sessionFactory”的 bean 时出错:调用 init 方法失败;嵌套异常是 org.hibernate.MappingException:实体映射中的重复列:postgresql.Customer 列:customerid(应使用 insert="false" update="false" 映射)
    ... 23 更多
原因:org.springframework.beans.factory.BeanCreationException:创建名为“sessionFactory”的bean时出错:调用init方法失败;嵌套异常是 org.hibernate.MappingException:实体映射中的重复列:postgresql.Customer 列:customerid(应使用 insert="false" update="false" 映射)
4

2 回答 2

1

有同样的问题,删除“Long customerid”

这可能不是一个可行的解决方案,但至少应用程序会编译并创建表。

根本没有调查,因为我只是设法让这个工作 - 也许在设置自定义标识列时,属性定义是隐含的(因此“重复列......”错误)

于 2011-01-11T06:45:41.853 回答
0

11年后就为这个鞠躬……

如果你把它编译

customerid insertable:false updateable:false

在映射而不是在约束下列出它;您还需要删除映射中“id”的内容。您收到此错误是因为您指定了映射到 customer_id 列的第二个变量“id”。

于 2022-02-04T19:28:48.037 回答