grails3的elasticsearch插件问题

Grails3.3.x 安装elasticsearch插件问题

这两天尝试使用grails3,搭建一个mongodb,elasticsearch的环境,在按照mongodb插件和elasticsearch插件的说明页正常安装后,所得的数据不能index到elasticsearch中.
如果如下定义domain,选择使用searchable=true时

package com.songtao.dw
class Bike {
    String name
    String type
    static searchable = true
    static constraints = {
        name nullable: true
        type nullable: true
    }
}

项目会一直报错:

Caused by: org.grails.core.exceptions.GrailsConfigurationException: The method [public abstract org.grails.datastore.mapping.model.PersistentEntity org.grails.datastore.mapping.model.MappingContext.getPersistentEntity(java.lan
g.String)] cannot be accessed before GORM has initialized

如果去掉domain中的searchable=true
在service中调用 elasticsearchService 时,仍然为空
那我岂不是白装es插件了???!!

经过大量的翻查资料,终于找到原因了:


原来在grails3.2.x升级到grails3.3.0的时候,将grails自带的GrailsEntity废弃掉了.

      Grails Domain Class API Deprecated

因此导致了在一些插件中使用grailsEntity的特性时,会出错.
这篇文章 写的比较详细,搜索 GrailsDomainClass 或者elasticsearch 找到具体的解释位置.

文中说明应该注入 grailsDomainClassMappingContext ,实测并无卵用. 准备降低grails的版本了.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值