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