是否可以在没有生成查询类型的情况下使用Querydsl?

Ond*_*zek 5 java persistence nosql querydsl jpa-2.0

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

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

或者有Querydsl的替代方案可以用上述方式使用吗?

由于NoSQL DB正在上升.是否有任何其他框架构成了各种持久性提供程序上的类似抽象层?

Tim*_*per 5

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

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

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

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

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

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