当尝试在Grails 2.4.4应用程序上添加可搜索的:0.6.9(或更小的)时,我得到了hibernate4引发的异常,但这只发生在我添加" 静态搜索时= 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 线|方法 - >> 95 |注入生命周期org.compass.gps.device.hibernate.lifecycle.DefaultHibernateEntityLifecycleInjector 147 doStart in org.compass.gps.device.hibernate.HibernateGpsDevice
有人知道如何让事情有效吗?
答案 0 :(得分:1)
我认为可搜索的插件不适用于Hibernate 4,但你没有声明对任何版本的Hibernate的依赖,这肯定是行不通的。
在我的Grails 2.4.4应用程序中,我使用可搜索的以下版本的Hibernate插件
plugins {
runtime ':hibernate:3.6.10.18'
// other plugins
}
答案 1 :(得分:0)
显然,这篇文章标题中提到的插件并不混合! GG格局正在迅速变化,可搜索的0.6.9不会与Hibernate 4握手。
解决方案?我现在正在考虑ElasticSearch - 新保养(事实上是昨天)并且与新插件混合得很好。它是否具有Searchable所做的功能,这意味着最终会出现一个搜索字段,可用于从我的可搜索域类和/或可搜索的属性中检索和显示记录?会发现并报告。