【问题标题】:Queries collections with spring data and querydsl使用 spring 数据和 querydsl 查询集合
【发布时间】:2014-08-01 14:44:41
【问题描述】:

我有以下领域模型:

@Entity
public class Sample {
  // id and other stuff
  private boolean deleted;
  private Set<Occurrence> occurrences;
  // Constructors, getter and setter
}

@Entity
public class Occurrence {
  // id and other stuff
  private boolean deleted;
  private Classification classification;
  // Constructors, getter and setter
}

@Entity
public class Classification {
   private int id;
   // other stuff
}

我想使用 QueryDSL 和 Spring Data JPA 查找所有未删除且包含未删除出现女巫且包含 id 为 47 的分类的样本。

我已经有一个用于未删除样本的 BooleanExpression:qSample.deleted.isFalse() 和一个用于具有特定分类 ID 的未删除事件的子查询:

JPASubQuery occurrenceSubQuery = new JPASubQuery();
QOccurrence qOccurrence = QOccurrence.occurrence;
occurrenceSubQuery.from().where(
       qOccurrence.in(qSample.occurrences),
       qOccurrence.deleted.isFalse(),
       qOccurrence.classification.id
         .eq(queryId));

缺少的是:如何将这些部分组合到 Spring 数据存储库的谓词中?

问候

丹尼尔

【问题讨论】:

    标签: java jpa spring-data querydsl


    【解决方案1】:

    你可以使用

    com.mysema.query.support.Expressions.allOf(...)

    a.and(b).and(c)...

    【讨论】:

    • 我已经尝试过 Expressions.allOff(...) 方法,但它返回给我所有未删除的样本,其中有一个未删除的出现女巫和一个具有正确分类的出现。但我需要出现正确分类且未被删除的样本。
    猜你喜欢
    • 2016-08-07
    • 2012-07-26
    • 1970-01-01
    • 2017-10-31
    • 1970-01-01
    • 2021-07-31
    • 2014-03-16
    • 1970-01-01
    • 2019-03-27
    相关资源
    最近更新 更多