当前位置: 首页 > 知识库问答 >
问题:

如何在Spring Boot应用程序的同一个域类上同时使用Spring数据JPA和Spring数据Elasticsearch存储库?

鞠乐
2023-03-14

我试图在同一个域对象上同时使用Spring Data JPA和Spring Data Elasticsearch,但这不起作用。

https://github.com/izeye/spring-boot-throwaway-branchs/tree/data-jpa-and-elasticsearch

共有1个答案

太叔富
2023-03-14

Spring Data中的存储库是数据源不可知的,这意味着JPararePositoryElasticSearchRepository都可以滚动到Repository接口中。在这种情况下,Spring Boot的自动配置将导致Spring Data JPA尝试为继承任何Spring Data Commons基存储库的项目中的每个存储库配置一个bean。

要解决此问题,您需要将JPA存储库和Elasticsearch存储库移动到单独的包中,并确保使用以下标记注释@SpringBootApplication应用程序类:

  • @enablejparepositories
  • @enableelasticsearchrepositories

然后您需要为每个enable注释指定存储库的位置。结果看起来像:

@SpringBootApplication
@EnableJpaRepositories("com.izeye.throwaway.data")
@EnableElasticsearchRepositories("com.izeye.throwaway.indexing")
public class Application {

    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }

}

那么您的应用程序将能够消除对哪个Spring数据项目的存储库的歧义。

 类似资料:
  • 问题内容: 是否可以使用Spring Data JPA(由Hibernate作为JPA提供者支持)并同时直接使用Hibernate? 问题是,当我使用JpaTransactionManager时,无法使用检索当前会话。当我切换到HibernateTransaction Manager时,JPA存储库无法提交更改。 这是我的Spring上下文的一部分(在该上下文中,我无法使用直接的Hibernate

  • 当我尝试将同一个POJO用于Spring Data JPA与Spring Data GemFire的集成时,存储库总是使用POJO访问数据库。但我希望存储库能够访问来自GemFire的数据,尽管我添加了注释和。 我想这是因为我在同一个POJO类中添加了和。 请帮助修复,让我知道,如果我可以这样做吗?我需要把它分成2个POJO类为数据库和GENFire工作吗? 谢谢

  • 我需要帮助设置一个应用程序,该应用程序将内部(主)MS SQL数据库DB1中的数据子集复制到另一个MySQL数据库DB2中,该数据库在Web服务器上运行,供Web应用程序使用(即,我想同步这两个数据库)。这两个数据库上的表具有相同的名称,尽管DB2上只定义了属性/列的子集。我想使用(xml配置的)spring、spring data jpa(即JpaRepository接口)和hibernate作

  • 我正在使用Spring的RedisTemplate与Redis接口。 目前,我在Redis中存储的数据使用OpsForHash操作,因为这最适合我存储的数据。 这可能使用一个单独的redistemplate吗? 谢了!

  • 是否可以使用Spring数据JPA(以Hibernate作为JPA提供程序为后盾),同时直接使用Hibernate? 问题是,当我使用JpaTransactionManager时,我无法使用检索当前会话。当我切换到HibernateTransaction管理器时,JPA存储库无法提交更改。 下面是Spring上下文的部分(对于该上下文,我无法使用直接的Hibernate调用): hibernate

  • 我们正在使用SpringSecurityACL基础设施与AppEngine数据存储相结合。我们不使用低级数据存储API,而是使用Objectify框架访问数据存储。我们需要将Spring SecurityACL模型(适用于RDBMS)转换为更适用于无模式面向对象数据存储的模型。到目前为止,我们已经完成了下面描述的两个实体。 国际计算语言学协会 id:Long 阿兰特里 sid:字符串 负责人:布尔