gpt4 book ai didi

java - 结合 MongoDB 和 ElasticSearch 的 Spring-Data

转载 作者:可可西里 更新时间:2023-11-01 10:42:24 24 4
gpt4 key购买 nike

我在努力

@org.springframework.data.mongodb.core.mapping.Document(collection = "goal")
@org.springframework.data.elasticsearch.annotations.Document(indexName = "goal")
public class Goal implements Serializable {
....}

但这给了我:

 Error creating bean with name 'goalRepository':
Invocation of init method failed; nested exception is
org.springframework.data.mapping.PropertyReferenceException:
No property insert found for type Goal! ->

顺便说一句:只要我将名为“插入”的属性添加到目标或从目标中删除 Elasticsearch 注释,该错误就会消失。

GoalRepository 是:

package org.jhipster.mongo.repository;
import org.jhipster.mongo.domain.Goal;
import org.springframework.data.mongodb.repository.MongoRepository;

public interface GoalRepository extends MongoRepository<Goal,String> {
}

最佳答案

在一个项目中使用多个 Spring Data 模块是可能的,但需要注意设置。

在类路径上有多个 Spring Data 模块可以实现严格的配置,这是 Spring Data 区分存储库职责所必需的。这主要通过注释以及特定存储库是否适合类型层次结构来完成。在您的例子中,Goal 带有 MongoDB 和 Elasticsearch 注释,因此这两个模块都感受到了实现存储库的冲动。

到目前为止,唯一的方法是将存储库保存在不同的包中,并将这些包用作 @Enable…Repositories 中的基础包。假设您的 Elasticsearch 存储库位于 org.jhipster.elasticsearch.repository 中,您的应用程序配置可能如下所示:

@EnableMongoRepositories("org.jhipster.mongo.repository")
@EnableElasticsearchRepositories("org.jhipster.elasticsearch.repository")
@SpringBootApplication
public class SpringBootApplication { … }

HTH,马克

关于java - 结合 MongoDB 和 ElasticSearch 的 Spring-Data,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36376447/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com