@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(); }
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(); }
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(); }
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(); }
/** * 根据条件查询实体指定字段的值并回填到实体内. <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; }
/** * 按字段更新 * * @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; }