hql语句拼接查询

根据不同条件拼接hql语句
@Override
    public List generateReport(Long marketId,String startTime,String endTime,Integer type) {
       StringBuilder ql = new StringBuilder("from OrderStatisticsByDay where 1 = 1 ");
       List params = new ArrayList();
       if(marketId != null) {
           ql.append(" and market_id = ? ");
           params.add(marketId);
       }
       if(type != null && type != 0) {
           ql.append(" and  transaction_type = ? ");
           params.add(type);
       }
       if (startTime==null|| startTime.isEmpty()) {

       }else {
           ql.append(" and transaction_date >= ? ");
           params.add(startTime);
       }
       if (endTime==null||endTime.isEmpty()) {

       } else {
           ql.append(" and transaction_date <= ? ");
           params.add(endTime);
       }
       return query(ql.toString(), params.toArray()).getResultList();
//多个hql语句拼接加.toString(), 多次params.add()加.toArray(),返回List集合加.getResultList()。


}

你可能感兴趣的:(hql语句拼接查询)