예제 #1
0
 @Override
 public <T extends BaseDto> List<Object[]> queryFieldValues(
     Class<T> entityClass,
     String[] queryfields,
     String wheresql,
     Object[] queryParams,
     int startRow,
     int rows) {
   String entityname = sqlBuilder.getEntityName(entityClass);
   Query query =
       getEntityManager()
           .createQuery(
               sqlBuilder.buildSelect(queryfields, "o")
                   + " FROM "
                   + entityname
                   + " o "
                   + (wheresql == null ? "" : "WHERE " + wheresql));
   setQueryParams(query, queryParams);
   if (startRow >= 0) {
     query.setFirstResult(startRow);
   }
   if (rows > 0) {
     query.setMaxResults(rows);
   }
   return query.getResultList();
 }
예제 #2
0
 public <T extends BaseDto> List<T> queryByWhere(
     Class<T> entityClass, String wheresql, Object[] queryParams) {
   String entityname = sqlBuilder.getEntityName(entityClass);
   Query query =
       getEntityManager()
           .createQuery(
               "SELECT o FROM "
                   + entityname
                   + " o "
                   + ((wheresql == null || wheresql.length() == 0) ? "" : "WHERE " + wheresql));
   setQueryParams(query, queryParams);
   query.setHint("org.hibernate.cacheable", true);
   return query.getResultList();
 }
예제 #3
0
  public <T extends BaseDto> void deleteByWhere(
      Class<T> entityClass, String where, Object[] delParams) {
    StringBuffer sf_QL =
        new StringBuffer("DELETE FROM ")
            .append(sqlBuilder.getEntityName(entityClass))
            .append(" o WHERE 1=1 ");
    if (where != null && where.length() != 0) {
      sf_QL.append(" AND ").append(where);
    }
    Query query = getEntityManager().createQuery(sf_QL.toString());
    this.setQueryParams(query, delParams);

    query.executeUpdate();
  }
예제 #4
0
 public <T extends BaseDto> long getCountByWhere(
     Class<T> entityClass, String whereql, Object[] queryParams) {
   StringBuffer sf_QL =
       new StringBuffer("SELECT COUNT(")
           .append(sqlBuilder.getPkField(entityClass, "o"))
           .append(") FROM ")
           .append(sqlBuilder.getEntityName(entityClass))
           .append(" o WHERE 1=1 ");
   if (whereql != null && whereql.length() != 0) {
     sf_QL.append(" AND ").append(whereql);
   }
   Query query = getEntityManager().createQuery(sf_QL.toString());
   this.setQueryParams(query, queryParams);
   return (Long) query.getSingleResult();
 }
예제 #5
0
 /**
  * 根据条件查询实体指定字段的值并回填到实体内. <br>
  * <b>注意:</b> <br>
  * 实体必须有包括要查询的字段为参数的构造函数.
  */
 private <T extends BaseDto> QueryResult<T> scroll(
     Class<T> entityClass,
     String[] queryfields,
     int firstindex,
     int maxresult,
     String wherejpql,
     Object queryParams,
     LinkedHashMap<String, String> orderby) {
   QueryResult<T> qr = new QueryResult<T>();
   String entityname = sqlBuilder.getEntityName(entityClass);
   String where = "";
   if (wherejpql != null) {
     if (wherejpql.length() > 0) {
       where = "WHERE " + wherejpql;
     }
   }
   Query query =
       getEntityManager()
           .createQuery(
               (sqlBuilder.buildSelect(entityname, queryfields, "o")
                   + "FROM "
                   + entityname
                   + " o "
                   + where
                   + sqlBuilder.buildOrderby(orderby)));
   setQueryParams(query, queryParams);
   if (firstindex != -1 && maxresult != -1)
     query
         .setFirstResult(firstindex)
         .setMaxResults(maxresult)
         .setHint("org.hibernate.cacheable", true);
   qr.setResultlist(query.getResultList());
   query =
       getEntityManager()
           .createQuery(
               "SELECT COUNT("
                   + sqlBuilder.getPkField(entityClass, "o")
                   + ") FROM "
                   + entityname
                   + " o "
                   + where);
   setQueryParams(query, queryParams);
   qr.setTotalrecord((Long) query.getSingleResult());
   return qr;
 }
예제 #6
0
 /**
  * 按字段更新
  *
  * @throws DaoException
  */
 public <T extends BaseDto> boolean updateByQuery(
     Class<T> entityClass, Map fieldsAndParams, String wheresql) throws DaoException {
   String entityname = sqlBuilder.getEntityName(entityClass);
   updateProcess(entityname, fieldsAndParams, wheresql);
   return true;
 }