@Override
public List<Agent> list(final String zone, final String orderByField, final AgentStatus... status) {
if (zone == null) {
throw new IllegalArgumentException("Zone name is required");
}
if (orderByField != null && !orderByFields.contains(orderByField)) {
throw new IllegalArgumentException(
"The orderByField only availabe among 'createdDate', 'updateDate' or 'sessionDate'");
}
return (List<Agent>) execute(session -> {
CriteriaBuilder builder = session.getCriteriaBuilder();
CriteriaQuery<Agent> criteria = builder.createQuery(Agent.class);
Root<Agent> root = criteria.from(Agent.class);
criteria.select(root);
Predicate whereCriteria = builder.equal(root.get("path").get("zone"), zone);
if (status != null && status.length > 0) {
Predicate inStatus = root.get("status").in(status);
whereCriteria = builder.and(whereCriteria, inStatus);
}
criteria.where(whereCriteria);
// order by created date
if (orderByField != null) {
criteria.orderBy(builder.asc(root.get(orderByField)));
}
Query<Agent> query = session.createQuery(criteria);
return query.getResultList();
});
}
AgentDaoImpl.java 文件源码
java
阅读 27
收藏 0
点赞 0
评论 0
项目:flow-platform
作者:
评论列表
文章目录