簡體   English   中英

無法將Spring Data MongoDB + Spring DataJPA與SpringBoot一起使用

[英]Unable to use Spring Data MongoDB + Spring DataJPA together with SpringBoot

當我嘗試將Spring Data JPA和Spring Data MongoDB與SpringBoot一起使用時,它假設我的Mongo實體也是JPA實體並拋出錯誤。

我有Person JPA實體和PersonRepository,它擴展了JpaRepository。 我有User Mongo Entity和UserRepository,它擴展了MongoRepository。

當我啟動應用程序時,我收到以下錯誤:

Caused by: java.lang.IllegalArgumentException: Not an managed type: class com.sivalabs.app.mongoentities.User
    at org.hibernate.jpa.internal.metamodel.MetamodelImpl.managedType(MetamodelImpl.java:219)
    at org.springframework.data.jpa.repository.support.JpaMetamodelEntityInformation.<init>(JpaMetamodelEntityInformation.java:68)
    at org.springframework.data.jpa.repository.support.JpaEntityInformationSupport.getMetadata(JpaEntityInformationSupport.java:65)
    at org.springframework.data.jpa.repository.support.JpaRepositoryFactory.getEntityInformation(JpaRepositoryFactory.java:149)
    at org.springframework.data.jpa.repository.support.JpaRepositoryFactory.getTargetRepository(JpaRepositoryFactory.java:88)
    at org.springframework.data.jpa.repository.support.JpaRepositoryFactory.getTargetRepository(JpaRepositoryFactory.java:68)
    at org.springframework.data.repository.core.support.RepositoryFactorySupport.getRepository(RepositoryFactorySupport.java:158)
    at org.springframework.data.repository.core.support.RepositoryFactoryBeanSupport.initAndReturn(RepositoryFactoryBeanSupport.java:224)
    at org.springframework.data.repository.core.support.RepositoryFactoryBeanSupport.afterPropertiesSet(RepositoryFactoryBeanSupport.java:210)
    at org.springframework.data.jpa.repository.support.JpaRepositoryFactoryBean.afterPropertiesSet(JpaRepositoryFactoryBean.java:92)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1612)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1549)
    ... 66 more

這有什么工作嗎?

您應該將Mongo和JPA實體放在單獨的包中(看起來您已經這樣做了)然后使用@EnableMongoRepositories(basePackageClasses=SomeMongoEntity.class)@EnableJpaRepositories(basePackageClasses=SomeJpaEntity.class)以便Spring Data知道在哪里分別找到Mongo和JPA實體。 您可以在Spring Boot的MixedMongoRepositoriesAutoConfigurationTests看到這些注釋。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM