Neo4j数据建模POJO用于​​关系

时间:2017-06-20 19:05:53

标签: neo4j spring-data-neo4j spring-data-neo4j-4

我正在使用Spring Data与Neo4j,我正在为我的架构创建POJO。在这个模式中,我有一个名为Person的节点,具有通常的属性,名称,姓氏等...我还有一个名为DRIVES的关系,它与另一个名为carModel的节点建立关系:

    SELECT EXP.intBA, 
           bae.CLIENTNAME,
           ba.BASEQ,             
           ba.TRAN_DATE
      FROM EXPORT_TABLE EXP 
INNER JOIN ba_name ba
        ON ba.INTBA          = EXP.INTBA
       AND ba.name_type_code = '0001'
       AND ba.indx_name_e_dte IS NULL
       AND ba.TRAN_DATE = (SELECT MAX(TRAN_DATE) FROM ba_name bamax
                            WHERE bamax.INTBA = ba.INTBA
                              AND bamax.name_type_code = '0001'
                              AND bamax.indx_name_e_dte IS NULL
                          )

在我的Person类中,我已经为关系和方法定义了所有属性字段和注释,如下所示:

(person)-[:DRIVES]->(carModel). 

我的问题是,如果在CarModel类中我还需要定义关系吗?

1 个答案:

答案 0 :(得分:1)

创建一个仅在一侧声明关系的模型是完全没法的。

原因可能是

  • 您根本不想从您的CarModel类推荐给人

  • CarModel的保存操作期间节省时间 - SDN无需检查相关Person是否已更改

<强>更新

存储在Neo4j中的关系可以在两个方向上遍历,尽管只在Person类中定义。

使用自定义密码查询,您可以通过CarModel查询Person,也可以按Person查询CarModel。

在SDN中使用derived finders时,您只能使用类模型中定义的方向。