3

当尝试在 Grails 2.4.4 应用程序上添加 searchable:0.6.9 (或较小的)时,我收到 hibernate4 抛出的异常,但这仅在我将“ static searchable = true ”添加到我的域类时发生。

考虑到我的 BuildConfig.groovy 看起来像这样:

repositories {
    inherits true // Whether to inherit repository definitions from plugins

    grailsPlugins()
    grailsHome()
    mavenLocal()
    grailsCentral()
    mavenCentral()

    mavenRepo "https://repo.grails.org/grails/core"
    mavenRepo "https://oss.sonatype.org/content/repositories/releases/"
    mavenRepo "http://repo.spring.io/milestone"

}

dependencies {

    compile "org.compass-project:compass:2.2.1"
    compile('org.apache.lucene:lucene-highlighter:4.10.2',
              'org.apache.lucene:lucene-spellchecker:3.6.2')

    test "org.grails:grails-datastore-test-support:1.0.2-grails-2.4"
    compile "javax.validation:validation-api:1.1.0.Final"
    runtime "org.hibernate:hibernate-validator:5.0.3.Final"
}

plugins {
    // plugins for the build system only
    build ":tomcat:7.0.55"

    // plugins for the compile step
    compile ":scaffolding:2.1.2"
    compile ':cache:1.1.8'
    compile ":asset-pipeline:1.9.9"

    runtime ":hibernate4:4.3.6.1" // or ":hibernate:3.6.10.18"
    runtime ":database-migration:1.4.0"
    runtime ":jquery:1.11.1"
    runtime ":searchable:0.6.9"
}

我得到这个例外:

错误 context.GrailsContextLoaderListener - 初始化应用程序时出错:org/hibernate/impl/SessionFactoryImpl 消息:org/hibernate/impl/SessionFactoryImpl Line | 方法->> 95 | org.compass.gps.device.hibernate.lifecycle.DefaultHibernateEntityLifecycleInjector 中的 injectLifecycle org.compass.gps.device.hibernate.HibernateGpsDevice 中的 147 doStart

请问有人知道如何使事情正常进行吗?

4

2 回答 2

1

我不认为可搜索插件适用于 Hibernate 4,但您还没有声明对任何版本的 Hibernate 的依赖,这肯定是行不通的。

在我的 Grails 2.4.4 应用程序中,我使用可搜索的 Hibernate 插件的以下版本

plugins {
    runtime ':hibernate:3.6.10.18'
    // other plugins
}
于 2014-11-20T22:09:31.490 回答
0

显然,这篇文章标题中提到的插件不能混用!GG 格局正在迅速变化,Searchable 0.6.9 不会与 Hibernate 4 握手。

解决方案?我目前正在考虑使用 ElasticSearch - 新维护(实际上截至昨天)并与新插件很好地混合。它是否像 Searchable 所做的那样,意味着最终以一个搜索字段结束,该字段可用于从我的可搜索域类和/或可搜索属性中检索和显示记录?会发现并报告。

于 2014-12-02T17:06:21.333 回答