rendered paste body private Criteria createArticlesForMagazineCriteria(Magazine magazine,
PagingAndSortCriteria criteria,
User editor,
Boolean hasApprovalTimeLimit,
Rating... rating)
{
Session session = getSession();
Junction junction = Restrictions.conjunction()
.add(Restrictions.eq("magazine.id", magazine.getId()));
if (null != editor) {
junction = junction.add(Restrictions.eq("editor.id", editor.getId()));
}
if (null != rating && rating.length > 0) {
if (rating.length == 1) {
junction = junction.add(Restrictions.eq("authorApproval", rating[0]));
} else {
Junction dj = Restrictions.disjunction();
for (Rating r: rating) {
dj.add(Restrictions.eq("authorApproval", r));
}
junction.add(dj);
}
}
if (null != hasApprovalTimeLimit) {
if (hasApprovalTimeLimit) {
junction = junction.add(Restrictions.isNotNull("approvalTimeLimit"));
} else {
junction = junction.add(Restrictions.isNull("approvalTimeLimit"));
}
}
Criteria search = session.createCriteria(EditedArticleBean.class).add(junction);
if (null == criteria) {
return;
}
if (criteria.isSortReversed()) {
for (String sortBy: criteria.getSortFieldList()) {
search.addOrder(Order.desc(sortBy));
}
} else {
for (String sortBy: criteria.getSortFieldList()) {
search.addOrder(Order.asc(sortBy));
}
}
return search.list()
}