我有一个Spring MVC / Spring Data / Mongo数据库应用程序。 我根据spring数据文档设置了我的环境,我的存储库工作正常(我可以用谓词执行查询)
我想知道是否可以在进行投影时执行类型安全查询(使用Spring Data和QueryDSL)(我只想要一个非常大的文档的几个字段)。
QueryDSL文档为Hibernate提供了一个示例,但声明它可以在所有模块QueryDSL Documentation 中完成(但我无法找到如何使用Mongo)
这是hibernate的代码片段
class CustomerDTO {
@QueryProjection
public CustomerDTO(long id, String name){
...
}
QCustomer customer = QCustomer.customer;
JPQLQuery query = new HibernateQuery(session);
List<CustomerDTO> dtos = qry.from(customer).list(new QCustomerDTO(customer.id, customer.name));
任何想法?
答案 0 :(得分:1)
目前不支持此功能。随意在我们的Issue tracker中添加一张票。
Querydsl的Lucene和Mongodb模块仅支持来自查询根的直接投影,但是对于自定义投影,可以找出一些东西。
答案 1 :(得分:0)
我刚刚建立了一个这样的投影:
Criteria c1 = Criteria.where("field.name").is("val")
Criteria projection = Criteria.where("field").is(1)
BasicQuery query = new BasicQuery(c1.getCriteriaObject(), projection.getCriteriaObject())