private Query createQueryParam(String _jpql, List<SqlQueryItem> _paramList, Pageable _pageable) {
   Query query = manager.createQuery(_jpql);
   if (_pageable != null) {
     int maxResult = _pageable.getPageSize();
     query.setFirstResult(_pageable.getPageNumber() * _pageable.getPageSize());
     query.setMaxResults(maxResult);
   }
   if (_paramList != null) {
     for (SqlQueryItem param : _paramList) {
       Object value = param.getValue();
       if (param.getAction() == SqlActionType.LIKE) {
         String val = param.getValue().toString().trim();
         if (!val.startsWith("%")) {
           val = "%" + val;
         }
         if (!val.endsWith("%")) {
           val = val + "%";
         }
         value = val;
       }
       query.setParameter(param.getPropertyName().replace(".", ""), value);
     }
   }
   return query;
 }
 protected String getFilter(List<SqlQueryItem> _paramList) {
   if (_paramList == null || _paramList.size() == 0) {
     return "";
   }
   String result = "where ";
   for (SqlQueryItem item : _paramList) {
     result =
         result
             + String.format(
                 "t.%s %s :%s and ",
                 new Object[] {
                   item.getPropertyName(),
                   item.getAction().getAction(),
                   item.getPropertyName().replace(".", "")
                 });
   }
   result = result.substring(0, result.length() - 5);
   return result;
 }