【问题标题】:Grails ignores hibernate.cfg.xmlGrails 忽略 hibernate.cfg.xml
【发布时间】:2010-09-28 14:08:24
【问题描述】:

实际上,我在两个 tomcat 实例上部署了我的 grails 应用程序。现在我遇到了一个问题。我的 Quartz Job 需要集群化。

我阅读了插件文档,发现可以将 Quartz 作业与数据库结合起来。

因此,我必须在我的 grails 应用程序中创建一个休眠映射('grails-app/conf/hibernate/hibernate.cfg.xml')。

<?xml version='1.0' encoding='UTF-8'?>

<session-factory>
    <mapping resource='Quartz.hbm.xml'/>
</session-factory>

然后我还创建了一个 Quartz.hbm.xml。这个为 Quartz 插件创建表。

当我启动我的应用程序时,grails 似乎没有使用 hibernate.cfg.xml 并且没有创建表。

我的想法是问题出在下面的 Spring Datasource 定义中。

import org.apache.commons.dbcp.BasicDataSource
import org.codehaus.groovy.grails.commons.ConfigurationHolder as CH

// Place your Spring DSL code here
beans = {
  dataSource(BasicDataSource) { bean ->
    bean.destroyMethod = 'close'
    def ds = CH.config.dataSource
    // required attributes
    if(ds.driverClassName == "com.mysql.jdbc.Driver") {
      url = ds.url
      username = ds.username
      password = ds.password
      driverClassName = ds.driverClassName
      // optional attributes
      minEvictableIdleTimeMillis = 1000 * 60 * 30
      timeBetweenEvictionRunsMillis = 1000 * 60 * 30
      numTestsPerEvictionRun = 3
      testOnBorrow = true
      testWhileIdle = false
      testOnReturn = false
      initialSize = 2
      minIdle = 1
      maxIdle = 4
      validationQuery = "SELECT NOW()"
    } else {
      url = ds.url
      username = ds.username
      password = ds.password
      driverClassName = ds.driverClassName
    }
  }
}

现在我得到了休眠日志的输出。似乎该文件将被解释。但是解析后会发生什么?日志中没有异常。

2010-09-29 11:30:39,852 [main] DEBUG org.hibernate.util.DTDEntityResolver  - trying to resolve system-id [http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd]
2010-09-29 11:30:39,852 [main] DEBUG org.hibernate.util.DTDEntityResolver  - trying to resolve system-id [http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd]
2010-09-29 11:30:39,852 [main] DEBUG org.hibernate.util.DTDEntityResolver  - recognized hibernate namespace; attempting to resolve on classpath under org/hibernate/
2010-09-29 11:30:39,852 [main] DEBUG org.hibernate.util.DTDEntityResolver  - recognized hibernate namespace; attempting to resolve on classpath under org/hibernate/
2010-09-29 11:30:39,852 [main] DEBUG org.hibernate.util.DTDEntityResolver  - located [http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd] in classpath
2010-09-29 11:30:39,852 [main] DEBUG org.hibernate.util.DTDEntityResolver  - located [http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd] in classpath
2010-09-29 11:30:39,868 [main] DEBUG org.hibernate.cfg.AnnotationConfiguration  - null <- org.dom4j.tree.DefaultAttribute@1374ffd [Attribute: name resource value "Quartz.hbm.xml"]
2010-09-29 11:30:39,868 [main] DEBUG org.hibernate.cfg.AnnotationConfiguration  - null <- org.dom4j.tree.DefaultAttribute@1374ffd [Attribute: name resource value "Quartz.hbm.xml"]
2010-09-29 11:30:39,868 [main] INFO  org.hibernate.cfg.Configuration  - Reading mappings from resource : Quartz.hbm.xml
2010-09-29 11:30:39,868 [main] INFO  org.hibernate.cfg.Configuration  - Reading mappings from resource : Quartz.hbm.xml
2010-09-29 11:30:39,884 [main] DEBUG org.hibernate.util.DTDEntityResolver  - trying to resolve system-id [http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd]
2010-09-29 11:30:39,884 [main] DEBUG org.hibernate.util.DTDEntityResolver  - trying to resolve system-id [http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd]
2010-09-29 11:30:39,884 [main] DEBUG org.hibernate.util.DTDEntityResolver  - recognized hibernate namespace; attempting to resolve on classpath under org/hibernate/
2010-09-29 11:30:39,884 [main] DEBUG org.hibernate.util.DTDEntityResolver  - recognized hibernate namespace; attempting to resolve on classpath under org/hibernate/
2010-09-29 11:30:39,884 [main] DEBUG org.hibernate.util.DTDEntityResolver  - located [http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd] in classpath
2010-09-29 11:30:39,884 [main] DEBUG org.hibernate.util.DTDEntityResolver  - located [http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd] in classpath
2010-09-29 11:30:39,930 [main] INFO  org.hibernate.cfg.Configuration  - Configured SessionFactory: null
2010-09-29 11:30:39,930 [main] INFO  org.hibernate.cfg.Configuration  - Configured SessionFactory: null

有什么想法吗?

【问题讨论】:

  • 为您提供更多信息

标签: hibernate grails hibernate.cfg.xml


【解决方案1】:

这条线让我很困惑

然后我还创建了一个 Quartz.hbm.xml。 这个为 Quartz 插件。

我认为您应该使用在特定于您的数据库的 src/templates/sql 目录中提供给您的映射文件。

【讨论】:

  • 哦,对不起……没错……我用的是mysql innodb映射文件
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-10-22
相关资源
最近更新 更多