gpt4 book ai didi

java - Neo4j OGM 关系仅在一个实体中

转载 作者:行者123 更新时间:2023-12-01 20:57:25 26 4
gpt4 key购买 nike

我有两个 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();
}

关于java - Neo4j OGM 关系仅在一个实体中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42093052/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com