如何使用具有多对多联接到同一表的 JPA 分层检索数据



我有一个包含一些版本的表(tbl_versions)。版本之间的关系就像父子关系。所以我把关系放在另一个表(tbl_relations)中,它有两个记录(parent_id,child_id),它与tbl_versions有很多关系。我想将数据作为树模型检索,最后有一个树模型中的 json 文件。关于如何使用 JPQL 选择和检索的任何建议?

分层查询不容易实现。一般来说,编写本机SQL是创建查询的最有效方法,因为到一天结束时,JPQL,HQL或任何内容将被转换为本机SQL并发送到数据库。然后,如果您无法使用SQL编写查询(我的意思是只需一次),那么您将无法找到通过JPQL编写查询的方法。

但是回到你的具体问题,像Oracle这样的数据库提供了像JPQL不支持的连接开始这样的机制,因为像MySQL这样的其他数据库不支持这一点。

在这种情况下,我的建议是再使用一列来保存记录之间的层次结构。该列仅用作元数据持有者,它不仅描述两个记录之间的父子关系,还包含有关当前记录祖先的信息。

最新更新