public RetentionRule findByBusinessKey()

in src/main/java/com/google/gcs/sdrs/dao/impl/RetentionRuleDaoImpl.java [72:94]


  public RetentionRule findByBusinessKey(
      String projectId,
      String dataStorageName,
      Boolean includeDeactivated,
      RetentionRuleType retentionRuleType) {
    Session session = openSession();
    CriteriaBuilder builder = session.getCriteriaBuilder();
    CriteriaQuery<RetentionRule> query = builder.createQuery(RetentionRule.class);
    Root<RetentionRule> root = query.from(RetentionRule.class);

    List<Predicate> predicates = new LinkedList<>();
    predicates.add(builder.equal(root.get("projectId"), projectId));
    predicates.add(builder.equal(root.get("dataStorageName"), dataStorageName));
    predicates.add(builder.equal(root.get("type"), retentionRuleType));
    if (!includeDeactivated) {
      predicates.add(builder.equal(root.get("isActive"), true));
    }
    Predicate[] predicateArray = new Predicate[predicates.size()];
    predicateArray = predicates.toArray(predicateArray);

    query.select(root).where(predicateArray);
    return getSingleRecordWithCriteriaQuery(query, session);
  }