当前位置: 首页 > 面试题库 >

如何使用Spring Data JPA + Neo4j正确设置跨存储持久性?

公西翼
2023-03-14
问题内容

我正在尝试运行一个非常小的JPA + SDN(Spring Data
Neo4j)跨存储项目,并试图演示使用JPA存储库调用保存部分实体将在Neo4j中创建一个相应的节点。

我遵循了在SO,Google和Spring的网站上可以找到的指示/建议,但目前仍然难以解决问题。我目前在以下位置创建了一个最小的测试项目:

https://github.com/simon-lam/sdn-cross-store-poc

该项目使用Spring
Boot,并具有一个简单的域,其中包含图实体GraphNodeEntity.java和部分实体PartialEntity.java。我编写了一个非常基本的测试,PartialEntityRepositoryTest.java以保存部分实体,并发现:

  • 似乎使用了错误的事务管理器,因为CrossStoreNeo4jConfiguration该类无法正确自动装配entityManagerFactory,它为null
  • 由于上述^的结果,因此没有为我的实体分配ID
  • 我根本没有在日志中看到任何SDN活动
  • 我做错了什么吗?

更笼统地说,我希望确认一些假设并总体上更好地理解跨存储持久性支持:

  • 要启用它,我需要启用高级映射吗?
  • 作为启用高级映射的一部分,我需要设置AspectJ。这包括启用加载时间编织吗?如果是这样,这是通过使用@EnableLoadTimeWeavingconfig 完成的吗?
  • 假设所有配置最终都已修复,那么当我使用JPA存储库持久存储部分节点时,是否应该希望它在Neo4j中得以保留?这应该由跨方面支持的跨商店支持来处理吗?

感谢您提供的任何帮助!


问题答案:

我向Neo4j Google集团发送了一条消息,并从Michael Hunger获得了一些反馈,因此我将在这里分享:

  • 原来交叉存储库已经休眠了一段时间
  • 不支持JPA仓库,仅EntityManager操作是
  • 跨商店设置不适用于远程服务器,并且未经测试

总而言之,我的核心理解/假设不成立!

来源:https://groups.google.com/forum/#!topic
/
neo4j /
FGI8692AVJQ



 类似资料:
  • 我试图使用neo4j交叉存储持久性的数据结构是多少设置。在jpa和neo4j之间的边界,它包含一个引用jpa实体的NodeEntity。因此neo4j对象只包含jpa-对象的id作为引用。 在mongodb交叉存储persistence和neo4j持久性的混合语法中,这可能如下所示: 似乎这种跨存储持久性在sping-data-neo4j中是不可能的。唯一支持的表单似乎是使用@NodeEntity

  • 问题内容: 当我通过获取我的ElasticSearch服务器设置时 我看到了持久性和临时性设置。 如果我设置一个持久设置,它不会将其保存到我的配置文件中吗?所以我的问题是服务器重新启动时,如何知道我的持久设置是什么? 不要告诉我不要担心,因为我几乎失去了整个群集的数据,因为它在重新启动后获取了配置文件中的所有设置,而不是上面显示的持久性设置:) 问题答案: 持久性设置存储在全局集群状态文件中的每个

  • 持久化存储的相关配置 这里使用的是NFS的方式进行持久化,如果您有自己的持久化方案可以不使用改方案。 $ kubectl apply -f install/kubernetes/storage/serviceaccount.yaml $ kubectl apply -f install/kubernetes/storage/rbac.yaml $ kubectl apply -f install/

  • 我想使用apache ignite作为数据库的缓存,为此我使用persitent store。我的数据库是Cassandra,我使用这个wiki进行配置。 通过此初始化,我在Windows中运行ignite: cassandra-ignite-config.xml 好像漏掉了什么,但我不明白。 更新: 我使用基本概念和示例中的示例4。但是知道我有pojo示例的序列化问题。

  • 我是Cassandra数据库的初学者。我准备了事件存储表的示例,如下所示: 哪里: 身份证- 数据- 版本- 聚合ID- 事件身份- 日期- 我不确定我的主键是否正确(Aggregate Id,版本)以及按版本聚类。我想知道我的表是否会被正确分区。Aggregate Id分区,其中包含按版本排序的此聚合的所有事件。

  • 本文将指导您如何在Kubernetes集群上安装OpenEBS作为持久化存储。 我们将使用Operator的方式来安装OpenEBS,安装之前需要先确认您的节点上已经安装了iSCSI。 先决条件 OpenEBS依赖与iSCSI做存储管理,因此需要先确保您的集群上已有安装openiscsi。 注意:如果您使用kubeadm,容器方式安装的kublet,那么其中会自带iSCSI,不需要再手动安装,如果