gpt4 book ai didi

java - 如何在 JPA 中反射(reflect) "Nested Sets"模型

转载 作者:搜寻专家 更新时间:2023-10-30 20:42:59 24 4
gpt4 key购买 nike

很好用Nested sets对于分层数据。但是在这个设计中,如果你删除或插入一些数据,你应该总是计算右节点和左节点。此外,您没有任何外键。

我如何用 JPA 反射(reflect)这个模型?可能吗?

最佳答案

我认为即使有 RIGHT 和 LEFT,您仍然需要 PARENT_ID,否则父/子查询效率低下,或者我什至不确定是否可行。

您可以在应用程序/模型中或通过 PrePersist/PreUpdate/PreRemove 事件更新 RIGHT 和 LEFT 值。

另一种选择是改用分解表。为此,您只需要添加一个使用 ManyToMany 连接表的 allChildren 关系。当您将一个 child 添加到任何节点时,您只需要将该 child 添加到它的所有父节点。

另一种选择是在您的数据库中使用分层查询,例如 Oracle 中的 CONNECT BY 子句。

关于java - 如何在 JPA 中反射(reflect) "Nested Sets"模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12007148/

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