6

例如,无需生成元模型即可使用 JPA Criteria API。类型安全丢失了,但我可以在没有数据模型的先验知识的情况下仅在运行时使用反射来创建查询。我想以同样的方式使用 Querydsl。我不关心类型安全,因为无论如何我都不知道数据模型。

在我最近的项目中,我想使用 Querydsl 主要是因为它构成了持久性的另一层。所以我希望可以在JPA、JDO、JDBC、Lucene、Hibernate Search、MongoDB、Collections 和 RDFBean上使用相同的查询。

或者是否有任何可以以所述方式使用的 Querydsl 替代方案?

由于 NoSQL 数据库正在兴起。是否有任何其他框架在各种持久性提供程序上构成类似的抽象层?

4

1 回答 1

6

有两种方法可以在没有生成元模型的情况下使用 Querydsl。

第一种方法是手动构建表达式 http://www.querydsl.com/static/querydsl/2.9.0/reference/html/ch03.html#d0e1379

第二个是使用Querydsl的别名功能 http://www.querydsl.com/static/querydsl/2.9.0/reference/html/ch02s07.html

Querydsl 查询共享通用接口并且看起来很相似,但是您不能直接在不同的持久性类型上使用相同的查询,因为 Querydsl 不提供跨模块的任何查询抽象。

查询的各个部分可以共享,例如谓词或预测,但查询与某个模块相关联。

您可以做的是坚持使用常见的持久性抽象 JPA 或 JDO 之一,并通过它们使用 RDBMS、OODB 和 NoSQL 引擎。

于 2013-02-28T15:34:31.997 回答