Grails 3命名外键

时间:2017-07-28 15:44:53

标签: hibernate grails gorm

我们有一个最初在Grails 2下开发的应用程序,但我们最近迁移到Grails 3.当我们创建原始表时,我们将生成的外键重命名为更易读的东西。现在在Grails 3下,我们在尝试加载/运行应用程序时遇到异常。

我们使用的是Grails 2.3.9,GORM 6.1.6.RELEASE,Hibernate5 6.1.6

  

在上下文初始化期间遇到异常 - 取消刷新尝试:org.springframework.context.ApplicationContextException:无法启动嵌入式容器;嵌套异常是org.springframework.beans.factory.BeanCreationException:创建名为'hibernateDatastoreServiceRegistry'的bean时出错:在设置构造函数参数时无法解析对bean'hibernateDatastore'的引用;嵌套异常是org.springframework.beans.factory.BeanCreationException:创建名为'hibernateDatastore'的bean时出错:通过构造函数的Bean实例化失败;嵌套异常是org.springframework.beans.BeanInstantiationException:无法实例化[org.grails.orm.hibernate.HibernateDatastore]:构造函数抛出异常;嵌套异常是org.hibernate.tool.schema.spi.SchemaManagementException:无法对JDBC目标执行模式管理[alter table message add constraint FKnk6v4vlnstxdwedmm8wp6olvi foreign key(pref_id)reference parent_ref]

这是抱怨它试图运行的以下SQL:

alter table message add constraint FKnk6v4vlnstxdwedmm8wp6olvi foreign key (pref_id) references parent_ref

但这是现有的(稍微编辑过的)表:

create table MESSAGE
(
    ID NUMBER(19)       not null primary key,
    VERSION NUMBER(19)  not null,
    PREF_ID NUMBER(19)  not null constraint FK_MESSAGE_PREF references PARENT_REF,
    TYPE CHAR(2 char)   not null,
)
/

外键已经到位,只是命名不同。 Grails / GORM / Hibernate用于将FK_MESSAGE_PREF识别为有效的外键,但现在却没有。我们有办法识别现有的外键吗?

0 个答案:

没有答案