我正在尝试从以下域类注入我自己的服务elasticsearchService:
class DocumentESO extends ElasticsearchObject{
ElasticsearchService elasticsearchService
def afterInsert() {
elasticsearchService.save(this) // <-- Cannot invoke method save() on null object
}
}然而,它告诉我它是Cannot invoke method save() on null object。这是我的服务:
@Transactional
class ElasticsearchService {
@Transactional
def save(ElasticsearchObject esObject) {...}
}我拼错什么了吗?如果我使用ElasticsearchService elasticsearchService = new ElasticsearchService(),那么它就可以工作,但我不再有事务支持。
在这个answer中,robert提到了它需要初始化,例如使用元编程save()。这是否意味着在这种情况下我不能使用依赖注入?
因此,它将是:
def afterInsert() {
ElasticsearchService elasticsearchService = new ElasticsearchService()
elasticsearchService.save(this)
}??
发布于 2021-08-17 18:03:30
从Grails 3.2.8开始,默认情况下禁用GORM实体中的服务注入。
通过添加到DocumentESO,您可以在这个特定的域类中启用自动装配
static mapping = {
autowire true
}https://stackoverflow.com/questions/68820676
复制相似问题