2016-10-25 14 views
3

我似乎无法使SDN(最新快照)沿着侧面的Spring Data JPA(H2)很好地播放。我不需要跨数据存储的跨国支持;相反,我的愿望是简单地利用两个商店在同一类中的存储库。例如在同一应用程序上下文中启用两个Spring数据存储库(neo4j和h2)

public MySpringControlledClass{ 

    @Autowired 
    private MyNeo4jBasedRepository myNeo4jBasedRepository; 

    @Autowired 
    private MyH2BasedRepository myH2BasedRepoistory; 
    ... 
} 

当我同时启用的Neo4j和JPA我得到的形式

的异常产生的原因: org.springframework.beans.factory.UnsatisfiedDependencyException: 误差名创建豆“ myNeo4jBasedRepository':不满意 通过方法'setMappingContext'参数0表示的依赖关系; 嵌套的异常是 org.springframework.beans.factory.NoUniqueBeanDefinitionException:否 类型的 排位豆[org.springframework.data.mapping.context.MappingContext]被定义: 预期单一匹配豆但发现2: neo4jMappingContext, jpaMappingContext

这是预期因为我现在有两个映射上下文,一个SDN隐式创建一个在我的配置明确创建春天数据JPA。

虽然我发现文章描述了如何在弹簧数据jpa中使用两个不同的数据库来完成此任务,但我还没有找到如何使用SDN和弹簧数据JPA存储库(如H2)来完成此任务的示例。差别似乎是SDN隐藏了开发者的一些boilderplate逻辑。

任何帮助将不胜感激,因为我花了很多时间尝试各种事情,但迄今为止还没有证明有效果。

非常感谢!

+2

4.2的相似问题。0-SNAPSHOT记录在这里:https://github.com/neo4j/neo4j-ogm/issues/268 –

+0

如下所述,我确实发现了neo4j记录的一些问题,描述了类似的问题。我会将简单的修复提交给SDN,以便其他人可以解决这个问题。感谢您的协助! – jmdev

回答

3

所以在你myNeo4jBasedRepository有一个setMappingContext方法是自动有线,它不知道是否使用neo4jMappingContextjpaMappingContext,因为这两个豆具有相同类型的依赖。

我不确定接触到的是多少,但如果可能,请在MyNeo4jBasedRepository中覆盖setMappingContext方法,以采用neo4jMappingContext类型的任何类型来获取它以选择此类型。

或覆盖setMappingContext方法简单super.setMappingContext,并把预选赛@Qualifier("neo4jMappingContext")顶部:

@Autowired 
@Qualifier("neo4jMappingContext") 
public void setMappingContext(TODO todo) 
{ 
    //super.setMappingContext(todo) Sample implementation as before 
} 

这将确保春季选择正确的依赖。

+0

谢谢Snickers3192!你把我带到了正确的道路上。虽然你不能覆盖存储库本身的setMappingContext,但我发现通过将上面提到的@Qualifier添加到Neo4jRepositoryFactoryBean中,一切都按照你所描述的方式工作。再次感谢!我会把它提交给SDN人,因为我认为它可以解决Jasper Blues上面提到的一些错误。 – jmdev

+0

很高兴我可以服务。 – Snickers3192

2

已将错误修复推送到Spring Data Neo4j 4.2.0.BUILD-SNAPSHOT这意味着您不需要在配置中使用@Qualifier或定义MappingContext bean。您只需要定义各自的PlatformTransactionManager,并通过transactionManagerRef属性将它们链接到您的@EnableXXXRepositories

我在这里创建了一个项目来演示如何让两个Spring Data项目与Spring Boot一起工作:https://github.com/mangrish/spring-data-jpa-neo4j-with-boot

相关问题