Grails忽略了hibernate.cfg.xml

时间:2019-01-02 22:37:42

标签: hibernate grails

我们有一个使用石英的grails应用程序,我们使用hibernate.cfg.xml创建石英表,并且它可以正常工作。我们已经更新了grails的版本,并且不再创建表。

为缩小问题的范围,从头开始创建了grails项目。我添加的唯一内容是hibernate.cfg.xml和quartz.sqlserver.hbm.xml。此外,已将db属性添加到application.yml

hibernate.cfg.xml

<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
    "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
    "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
    <session-factory>
        <mapping resource="quartz.sqlserver.hbm.xml"/>
    </session-factory>
</hibernate-configuration>

quartz.sqlserver.hbm.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC
    "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
    "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
    <database-object>
        <create>
            IF NOT EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[PINS_SCHEDULER_CALENDARS]') AND OBJECTPROPERTY(id, N'ISUSERTABLE') = 1)
            BEGIN
            CREATE TABLE [dbo].[PINS_SCHEDULER_CALENDARS] (
            [SCHED_NAME] [VARCHAR] (120)  NOT NULL ,
            [CALENDAR_NAME] [VARCHAR] (200)  NOT NULL ,
            [CALENDAR] [IMAGE] NOT NULL
            ) ON [PRIMARY];

            ALTER TABLE [dbo].[PINS_SCHEDULER_CALENDARS] WITH NOCHECK ADD
            CONSTRAINT [PK_PINS_SCHEDULER_CALENDARS] PRIMARY KEY  CLUSTERED
            (
            [SCHED_NAME],
            [CALENDAR_NAME]
            )  ON [PRIMARY];
        END
    </create>
    <drop>
        <!--IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[PINS_SCHEDULER_CALENDARS]') AND OBJECTPROPERTY(id, N'ISUSERTABLE') = 1)-->
        <!--BEGIN-->
            <!--DROP TABLE [dbo].[PINS_SCHEDULER_CALENDARS];-->
        <!--END-->
        SELECT 1
    </drop>
    <dialect-scope name="org.hibernate.dialect.SQLServer2012Dialect" />
</database-object>


</hibernate-mapping>

application.yml的相关部分

environments:
    development:
        dataSource:
            dbCreate: update
             dialect: org.hibernate.dialect.SQLServer2012Dialect
             driverClassName: 
  com.microsoft.sqlserver.jdbc.SQLServerDriver
        url: 'jdbc:sqlserver://localhost;characterEncoding=utf-8;databaseName=*****'
        username: ****
        password: ****

与数据库的连接很好,但是不再创建表。

Grails版本:3.3.8 | Groovy版本:2.4.15 | JVM版本:1.8.0_191

问题是不再创建quartz.sqlserver.hbm.xml中指定的表。

任何想法都将不胜感激。

0 个答案:

没有答案