簡體   English   中英

Neo4j OGM關系僅在一個實體中

[英]Neo4j OGM relationship in one entity only

我有兩個NodeEntity類,它們以多對一關系關聯(例如,一對多)。 假設許多實體A與單個實體B相關。我希望能夠加載深度大於0的實體B,但無需加載許多相關的實體A,並且實際上不需要訪問實體A來自實體B。

是否可以僅在實體A上指定關系,而不將其從實體B中指定出來,這樣,加載實體B不會加載任何實體A,但是加載實體A會加載實體B? 我擔心以后再保存實體,因為我不想在保存實體B時失去關系。

是的,您可以這樣做。 查看這個測試案例

@Test
@Transactional
public void shouldNotDeleteUnmappedRelations() throws Exception {

    session.purgeDatabase();
    session.query("CREATE (a1:A) CREATE (a2:A) CREATE (b:B{name:'b'}) CREATE (a1)-[:REL]->(b) CREATE (a2)-[:REL]->(b) RETURN id(b) as id", Collections.emptyMap());

    Collection<B> res = session.loadAll(B.class, new Filters("name", "b"), 0);
    B b = res.iterator().next();
    assertThat(b).isNotNull();

    session.save(b);
    session.clear();

    Collection<A> allA = session.loadAll(A.class);
    assertThat(allA).hasSize(2);
    assertThat(allA).extracting("b").isNotNull();
}

暫無
暫無

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

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