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

Spring Data Neo4j在一个NodeEntity中合并不同的类

关昊天
2023-03-14

我目前正在处理一个与sping-data-neo4j(当前版本)的项目,当我试图将两个类及其属性合并到一个NodeEntity时,我面临一个问题。下面是我的两节课:

@NodeEntity(label = "entity")
public class Ent1 {
    @Id
    @Index(unique = true)
    private Integer id;

    private Integer data1;
}

...

@NodeEntity(label = "entity")
public class Ent2 {
    @Id
    @Index(unique = true)
    private Integer id;

    private Integer data2;
}

通过定义用@Index注释的id属性,SDN正在进行合并,而不是插入具有相同索引的多个节点。

我想要实现的是,如果我保存一个Ent1实例,然后保存另一个与Ent1实体具有相同id的Ent2实例,那么结果节点中应该存在两个数据属性。它们应该合并。

事实上,data1或data2都存在,这取决于最后保存的实体。Merge似乎并不是真正的合并,而是替换实体属性。

是否有人有合并所有属性字段而不是替换/删除它们的解决方案

共有1个答案

陈业
2023-03-14

我刚刚用自定义密码查询解决了我的问题。如果有人也面临这样的问题,这里是上面问题抽象的解决方案。

@Query("MERGE (e:entity{id:{ent1}.id}) SET e.data1 = {ent1}.data1"
void saveEnt1(@Param("ent1") Ent1 ent1);

@Query("MERGE (e:entity{id:{ent2}.id}) SET e.data2 = {ent2}.data2"
void saveEnt2(@Param("ent2") Ent2 ent2);

不幸的是,SDN并没有在实体合并中本机使用这样的查询。

 类似资料:
  • 我使用嵌套的Select语句从表1中获得单行结果,我需要在同一行的末尾追加表3中的另一列(COLX)。我试过联合,但结果是两行。有什么建议吗? table2.colz和table3.colx是用来匹配条目的ID。这两个最终结果都符合要求。 编辑(进一步解释我的表结构) COLX是表3的ID,以匹配表2中的COLZ 表2 ID中的COL1与表1中的COL1匹配 结果我需要的是表1.col1,表1.c

  • 我正在尝试合并两个不同类型的列表。我得到了两个不同的API响应从改造在一个android应用程序,第一个列表是一个电影列表定义为 公共类列表{ 我通过以下操作成功地从API中检索到列表 然后,我尝试将一个类型列表和一个类型字符串列表组合起来,以创建一个新类ListingAndImage(字符串是一个URL,我将加载到imageview中) 我的问题是,哪种方式最好将这两个列表组合起来,形成一个列表

  • 我有两个熊猫数据帧共享一个共同的列名。我想合并公共列名,但保留与第二个dataFrame中的所有不同列,其中公共列名称匹配。下面是两个数据帧的示例: 我希望预期的结果是: 也就是说,当列“A”匹配时,我希望保留I,J,K,L的行,并且不等于“NaN ”,对于DF1中的列也是如此。 我已经尝试了所有的pd.merge选项,但是它们似乎没有做我上面要求的事情。例如, 在“A”上匹配并将所有键保留在左侧

  • 我在MySQL/MariaDB中有两个不同的表,它们有关于计算机系统的不同数据。computer_name有一个公共字段,但同一台计算机的字段内容可能不同。在表A中,computer_name可以是'hostname',而在表B中,computer_name可以是'hostname@dom1.domain'。我需要查看表A中的col1、col2、col3和表B中的col5、col6、col7,其中

  • 我正在使用JFreeChart使用折线图绘制三个系列的数据(XYSeries)。我想把每个系列画成它自己的图表,并把三个图表合并成一个jpg文件。我刚发现我可以用CombinedDomainXYPlot来做这个。 http://www.java2s.com/Code/Java/Chart/JFreeChartCombinedXYPlotDemo3.htm

  • 输入数据集2 预期输出为 `