Граальс игнорирует hibernate.cfg.xml - PullRequest
0 голосов
/ 03 января 2019

У нас есть приложение 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, больше не создаются.

Любые идеи будут высоко оценены.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...