2017-02-07 8 views
0

2つのNodeEntityクラスがあります。これは、多対1の関係(MANYから1への関係)で関連しています。多くのエンティティAが単一のエンティティBに関連しているとしましょう。エンティティBを0より大きい深さでロードできますが、多くの関連するエンティティAをロードせずに、実際にはエンティティAにアクセスする必要はありません1つのエンティティでのNeo4j OGMの関係

エンティティBの読み込みがエンティティAを読み込まないがエンティティAを読み込むとエンティティBを読み込むように、エンティティAのみに関係を指定することは可能ですか? ?私はエンティティBを保存するときに関係を失いたくないので、後でエンティティを保存することに懸念しています。

答えて

3

はい、これは可能です。このテストケースをチェックしてください

@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(); 
} 
+0

華麗な、トリックを動作させる!また、B上の他の関係と連携して、荷重の深さを0以上に増やしました.B上で定義された関係のオブジェクトはロードされましたが、A上で定義されたオブジェクトはロードされませんでした – Xenopathic

関連する問題