in src/main/java/com/google/gcs/sdrs/dao/impl/RetentionRuleDaoImpl.java [115:153]
public RetentionRule findGlobalRuleByProjectId(String projectId) {
Session session = openSession();
RetentionRule globalDefaultRule = null;
CriteriaBuilder builder = session.getCriteriaBuilder();
CriteriaQuery<RetentionRule> criteria = builder.createQuery(RetentionRule.class);
Root<RetentionRule> root = criteria.from(RetentionRule.class);
criteria
.select(root)
.where(
builder.equal(root.get("isActive"), true),
builder.equal(root.get("type"), RetentionRuleType.GLOBAL),
builder.equal(root.get("projectId"), projectId));
Query<RetentionRule> query = session.createQuery(criteria);
List<RetentionRule> result = query.getResultList();
if (result.isEmpty()) {
criteria = builder.createQuery(RetentionRule.class);
root = criteria.from(RetentionRule.class);
criteria
.select(root)
.where(
builder.equal(root.get("isActive"), true),
builder.equal(root.get("type"), RetentionRuleType.GLOBAL),
builder.equal(
root.get("projectId"),
SdrsApplication.getAppConfigProperty("sts.defaultProjectId")));
query = session.createQuery(criteria);
result = query.getResultList();
}
if (!result.isEmpty()) {
globalDefaultRule = result.get(0);
}
closeSession(session);
return globalDefaultRule;
}