public List<Question> findWithSearchBean(QuestionSearchBean searchBean, PaginationParameter page) { StringBuilder hqlBuilder = new StringBuilder("SELECT Q FROM " + Question.class.getName() + " Q "); Map<String, Object> args = new HashMap<>(); if (searchBean != null) { String finerHql = refineSearch(searchBean, "Q", args); hqlBuilder.append(" WHERE (" + finerHql + ")" ); } List<Question> questions; if (page != null) { questions = forHql(hqlBuilder.toString(), args).find(page); } else { questions = forHql(hqlBuilder.toString(), args).findAll(); } return questions; }
public List<Question> findForClient(CoselmarUser client, QuestionSearchBean searchBean, PaginationParameter page) { StringBuilder hqlBuilder = new StringBuilder("SELECT Q FROM " + Question.class.getName() + " Q "); Map<String, Object> args = new HashMap<>(); String clientCondition = DaoUtils.andAttributeContains("Q", Question.PROPERTY_CLIENTS, args, client); hqlBuilder.append(" WHERE 1=1 AND (" + clientCondition + " ) "); if (searchBean != null) { String finerHql = refineSearch(searchBean, "Q", args); hqlBuilder.append(" AND (" + finerHql + ")" ); } List<Question> questions; if (page != null) { questions = forHql(hqlBuilder.toString(), args).find(page); } else { questions = forHql(hqlBuilder.toString(), args).findAll(); } return questions; }
public List<Question> findForExpert(CoselmarUser expert, List<String> topiaIds, PaginationParameter page) { StringBuilder hqlBuilder = new StringBuilder("SELECT Q FROM " + Question.class.getName() + " Q " + " INNER JOIN Q." + Question.PROPERTY_PARTICIPANTS + " CUG "); Map<String, Object> args = new HashMap<>(); String publicCondition = DaoUtils.getQueryForAttributeEquals("Q", Question.PROPERTY_PRIVACY, args, Privacy.PUBLIC, ""); hqlBuilder.append(" WHERE ( (" + publicCondition + " ) "); String privateCondition = DaoUtils.getQueryForAttributeEquals("Q", Question.PROPERTY_PRIVACY, args, Privacy.PRIVATE, ""); hqlBuilder.append(" OR (" + privateCondition + " AND ( 0 = 1 "); String participantCondition = DaoUtils.orAttributeContains("CUG", CoselmarUserGroup.PROPERTY_MEMBERS, args, expert); hqlBuilder.append(participantCondition); String clientCondition = DaoUtils.orAttributeContains("Q", Question.PROPERTY_CLIENTS, args, expert); hqlBuilder.append(clientCondition + ") ) )"); String topiaIdsCondition = DaoUtils.andAttributeIn("Q", Question.PROPERTY_TOPIA_ID, args, topiaIds); hqlBuilder.append(topiaIdsCondition); List<Question> questions; if (page != null) { questions = forHql(hqlBuilder.toString(), args).find(page); } else { questions = forHql(hqlBuilder.toString(), args).findAll(); } return questions; }
List<CoselmarUser> coselmarUsers = forHql(hqlBuilder.toString(), args).find(paginationParameter);
public List<Question> findForExpert(CoselmarUser expert, QuestionSearchBean searchBean, PaginationParameter page) { StringBuilder hqlBuilder = new StringBuilder("SELECT Q FROM " + Question.class.getName() + " Q " + " INNER JOIN Q." + Question.PROPERTY_PARTICIPANTS + " CUG "); Map<String, Object> args = new HashMap<>(); String publicCondition = DaoUtils.getQueryForAttributeEquals("Q", Question.PROPERTY_PRIVACY, args, Privacy.PUBLIC, ""); hqlBuilder.append(" WHERE ( (" + publicCondition + " ) "); String privateCondition = DaoUtils.getQueryForAttributeEquals("Q", Question.PROPERTY_PRIVACY, args, Privacy.PRIVATE, ""); hqlBuilder.append(" OR (" + privateCondition); String participantCondition = DaoUtils.andAttributeContains("CUG", CoselmarUserGroup.PROPERTY_MEMBERS, args, expert); hqlBuilder.append(participantCondition); String clientCondition = DaoUtils.andAttributeContains("Q", Question.PROPERTY_CLIENTS, args, expert); hqlBuilder.append(clientCondition + ") )"); String finerHql = refineSearch(searchBean, "Q", args); hqlBuilder.append(" AND (" + finerHql + ")" ); List<Question> questions; if (page != null) { questions = forHql(hqlBuilder.toString(), args).find(page); } else { questions = forHql(hqlBuilder.toString(), args).findAll(); } return questions; }
@Override public List<E> find(int startIndex, int endIndex) { return getNextStep().find(startIndex, endIndex); }
@Override public List<E> find(PaginationParameter page) { return getNextStep().find(page); }