如何使用 Room 进行完整的分支祖先查询?

How to do full branch ancestry queries with Room?

我试图将路径枚举塞进 Room。有两个主要的过滤用例:

这些表不会变大,所以效率不是那么重要,所以我开始实现简单的路径具体化查询:

1 | Europe  | /1
---------------------
2 | Germany | /1/2
---------------------
3 | Bavaria | /1/2/3
---------------------
4 | Asia    | /4

后代:

WHERE :path LIKE column || '%'

祖先:

WHERE column LIKE :path || '%'

这需要在每个插入中映射路径。没什么大不了的,但不是简单的插入。

使用 Room 可以更轻松地完成这些完整的分支查询吗?

这是我使用 1.1.0 中新 @RawQuery 的解决方案:

https://gist.github.com/rcketscientist/4ded9ae64a770ff6929f27b5dbdbe13a