从多个数据源加入,过滤和分页结果

时间:2013-03-14 22:08:53

标签: java orm querydsl

我们现有的Java应用程序直接构建在Spring Data / JPA / Hibernate之上,用于数据访问。大多数情况下,Spring Repositories执行JPQL查询会对对象进行水合。当需要更多动态查询和排序时,我们还依赖于QueryDSL。 Spring Data与QueryDSL非常吻合,Spring Data带来的所有好的分页/排序都能很好地运行。

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

我已经查看了像QueryDSL的集合,Quaere,jaque,SBQL4J和lambdaj这样的东西,但是他们的印象是所有数据源中的所有数据都必须加载到内存中才能加入,过滤,排序,和分页 - 效率不高,特别是对于网络应用程序。例如,可以通过JPQL对一些数据进行过滤,以缩小内存使用量,但这仍然有气味。

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

0 个答案:

没有答案