5

我们现有的 Java 应用程序直接构建在 Spring Data/JPA/Hibernate 之上,用于数据访问。在大多数情况下,对象由 Spring Repositories 执行 JPQL 查询来补充。当需要更动态的查询和排序时,我们也依赖 QueryDSL。Spring Data 与 QueryDSL 配合得非常好,并且您使用 Spring Data 获得的所有漂亮的分页/排序都可以继续正常工作。

我们目前正在将现有系统扩展为一些数据在数据库中而其他数据通过 RESTful 服务持久化的系统。出现的问题是如何在处理多个持久数据源时有效地加入、过滤、排序和分页。来自一个来源的数据可以通过其主键引用来自另一个来源的数据,显然没有完整性约束。

我查看了诸如 QueryDSL for collections、Quaere、jaque、SBQL4J 和 lambdaj 之类的东西,但得出的印象是来自所有数据源的所有数据都必须加载到内存中才能进行连接、过滤、排序和分页 -效率不高,尤其是对于网络应用程序。当然,可以通过 JPQL 过滤一些数据,例如,以稍微减少内存使用量的影响,但这仍然很臭。

问:是否有任何可用的库可以优雅地处理这种异构数据源和技术的场景?

4

0 回答 0