protected void doSetSearchFilter(Query<T> query) throws UnifyException { query.ignoreEmptyCriteria(true); }
@SuppressWarnings({ "unchecked", "rawtypes" }) @Override public List<? extends Listable> execute(Locale locale, SearchProviderParams params) throws UnifyException { String key = params.getKey(); if (!StringUtils.isBlank(key)) { return genericService.listAll(new Query(recordType).equals(keyProperty, key).limit(searchLimit)); } String filter = params.getFilter(); if (!StringUtils.isBlank(filter)) { return genericService.listAll(new Query(recordType).like(descProperty, filter).limit(searchLimit)); } return Collections.emptyList(); }
@SuppressWarnings({ "unchecked", "rawtypes" }) @Override public <T extends Entity> T findConstraint(T record) throws UnifyException { SqlEntityInfo sqlEntityInfo = sqlDataSourceDialect.getSqlEntityInfo(record.getClass()); if (sqlEntityInfo.isUniqueConstraints()) { Query<T> query = new Query(record.getClass()); for (SqlUniqueConstraintInfo suci : sqlEntityInfo.getUniqueConstraintList().values()) { query.clear(); for (String fieldName : suci.getFieldNameList()) { query.equals(fieldName, ReflectUtils.getBeanProperty(record, fieldName)); } T constrainingRecord = find(query); if (constrainingRecord != null) { return constrainingRecord; } } } return null; }
@Override public <T extends Entity> List<T> findAll(Query<T> query) throws UnifyException { try { SqlEntityInfo sqlEntityInfo = sqlDataSourceDialect.getSqlEntityInfo(query.getEntityClass()); if (sqlEntityInfo.testTrueFieldNamesOnly(query.getFields())) { return getSqlStatementExecutor().executeMultipleRecordResultQuery(connection, sqlDataSourceDialect.prepareFindStatement(query)); } SqlFieldInfo idFieldInfo = sqlEntityInfo.getIdFieldInfo(); List<?> idList = valueList(idFieldInfo.getFieldType(), idFieldInfo.getName(), query); if (!idList.isEmpty()) { Query<T> findQuery = query.copyNoCriteria(); findQuery.add(new Amongst(idFieldInfo.getName(), idList)); return getSqlStatementExecutor().executeMultipleRecordResultQuery(connection, sqlDataSourceDialect.prepareFindStatement(findQuery)); } } catch (UnifyException e) { throw e; } catch (Exception e) { throw new UnifyException(e, UnifyCoreErrorConstants.COMPONENT_OPERATION_ERROR, getClass().getSimpleName()); } return new ArrayList<T>(); }
@Override public List<SystemControlState> findSystemControlStates(SystemParameterQuery query) throws UnifyException { List<SystemControlState> systemControlStateList = new ArrayList<SystemControlState>(); Criteria criteria = query.getCriteria(); Query<SystemParameter> innerQuery = query.copyNoCriteria().add(criteria).equals("control", Boolean.TRUE).order("name"); int index = 0; List<SystemParameter> list = db().findAll(innerQuery); for (SystemParameter sysParameter : list) { systemControlStateList.add(new SystemControlState(index++, sysParameter.getName(), sysParameter.getDescription(), convert(boolean.class, sysParameter.getValue(), null))); } return systemControlStateList; }
public int deleteAll(Query<? extends Entity> query) throws UnifyException { try { SqlEntityInfo sqlEntityInfo = sqlDataSourceDialect.getSqlEntityInfo(query.getEntityClass()); if (sqlDataSourceDialect.isQueryOffsetOrLimit(query) || (!sqlEntityInfo.isChildList() && sqlEntityInfo.testTrueFieldNamesOnly(query.getFields()))) { return getSqlStatementExecutor().executeUpdate(connection, sqlDataSourceDialect.prepareDeleteStatement(query)); if (sqlEntityInfo.isOnDeleteCascadeList()) { for (OnDeleteCascadeInfo odci : sqlEntityInfo.getOnDeleteCascadeInfoList()) { Query<? extends Entity> attrQuery = new Query(odci.getChildEntityClass()); attrQuery.amongst(odci.getChildFkField().getName(), idList); deleteAll(attrQuery); Query<? extends Entity> deleteQuery = query.copyNoAll(); deleteQuery.add(new Amongst(idFieldInfo.getName(), idList)); return getSqlStatementExecutor().executeUpdate(connection, sqlDataSourceDialect.prepareDeleteStatement(deleteQuery));
Query<? extends Entity> query = new Query(clfi.getChildEntityClass()); query.equals(clfi.getChildFkField().getName(), id).order("id"); List<? extends Entity> childList = null; if (isListOnly) { Query<? extends Entity> query = new Query(clfi.getChildEntityClass()); query.equals(clfi.getChildFkField().getName(), id).order("id"); List<? extends Entity> childList = null; if (isListOnly) {
@Override public List<? extends Listable> execute(Locale locale, AssignParams params) throws UnifyException { if (QueryUtils.isValidStringCriteria(params.getFilterId1())) { PrivilegeQuery query = new PrivilegeQuery(); query.privilegeCategoryId(params.getFilterId1(Long.class)); if (QueryUtils.isValidStringCriteria(params.getFilterId2())) { query.moduleId(params.getFilterId2(Long.class)); } if (params.isAssignedIdList()) { query.idNotIn(params.getAssignedIdList(Long.class)); } query.select("id", "description").order("description").ignoreEmptyCriteria(true); return getOrganizationService().findPrivileges(query); } return Collections.emptyList(); } }
@SuppressWarnings({ "unchecked", "rawtypes" }) @Override public int count(Query<? extends Entity> query) throws UnifyException { try { SqlEntityInfo sqlEntityInfo = sqlDataSourceDialect.getSqlEntityInfo(query.getEntityClass()); if (sqlEntityInfo.testTrueFieldNamesOnly(query.getFields())) { return getSqlStatementExecutor().executeSingleObjectResultQuery(connection, int.class, sqlDataSourceDialect.getSqlTypePolicy(int.class), sqlDataSourceDialect.prepareCountStatement(query), true); } SqlFieldInfo idFieldInfo = sqlEntityInfo.getIdFieldInfo(); List<?> idList = valueList(idFieldInfo.getFieldType(), idFieldInfo.getName(), query); if (!idList.isEmpty()) { Query<? extends Entity> countQuery = new Query(query.getEntityClass(), query.isApplyAppQueryLimit()); countQuery.add(new Amongst(idFieldInfo.getName(), idList)); return getSqlStatementExecutor().executeSingleObjectResultQuery(connection, int.class, sqlDataSourceDialect.getSqlTypePolicy(int.class), sqlDataSourceDialect.prepareCountStatement(countQuery), true); } } catch (UnifyException e) { throw e; } catch (Exception e) { throw new UnifyException(e, UnifyCoreErrorConstants.COMPONENT_OPERATION_ERROR, getClass().getSimpleName()); } return 0; }
Query<? extends Entity> criteria = new Query(validationClazz); String idProperty = getUplAttribute(String.class, "idProperty"); Object id = getTransferValue(idClazz, idProperty, dataTransfer); if (id != null) { criteria.notEqual("id", id); Object value = transferBlock.getValue(); if (value != null) { criteria.equals(transferBlock.getShortProperty(), value);
@Override public void process(Report report) throws UnifyException { DataSourceDialect dialect = getDataSource(report).getDialect(); Query<? extends Entity> query = ReflectUtils.newInstance(queryClass); Map<String, String> fieldToColumnMap = dialect.getFieldToNativeColumnMap(query.getEntityClass()); ReportColumn[] reportColumns = getReportColumns(report.getCode()); for (ReportColumn rc : reportColumns) { report.addColumn(rc); query.select(rc.getName()); if (rc.isGroup() || rc.getOrder() != null) { query.order(rc.getName()); } // Convert property names to native column name rc.setName(fieldToColumnMap.get(rc.getName())); } populate(query, report.getReportParameters()); String nativeQuery = dialect.generateNativeQuery(query); report.setQuery(nativeQuery); }
@Override public int updateAll(Query<? extends Entity> query, Update update) throws UnifyException { try { SqlEntityInfo sqlEntityInfo = sqlDataSourceDialect.getSqlEntityInfo(query.getEntityClass()); if (sqlDataSourceDialect.isQueryOffsetOrLimit(query) || (sqlEntityInfo.testTrueFieldNamesOnly(query.getFields()))) { return getSqlStatementExecutor().executeUpdate(connection, sqlDataSourceDialect.prepareUpdateStatement(query, update)); } SqlFieldInfo idFieldInfo = sqlEntityInfo.getIdFieldInfo(); List<?> idList = valueList(idFieldInfo.getFieldType(), idFieldInfo.getName(), query); if (!idList.isEmpty()) { Query<? extends Entity> updateQuery = query.copyNoAll(); updateQuery.add(new Amongst(idFieldInfo.getName(), idList)); return getSqlStatementExecutor().executeUpdate(connection, sqlDataSourceDialect.prepareUpdateStatement(updateQuery, update)); } } catch (UnifyException e) { throw e; } catch (Exception e) { throw new UnifyException(e, UnifyCoreErrorConstants.COMPONENT_OPERATION_ERROR, getClass().getSimpleName()); } return 0; }
@Override public <T extends Entity> T find(Query<T> query) throws UnifyException { T record = null; try { SqlEntityInfo sqlEntityInfo = sqlDataSourceDialect.getSqlEntityInfo(SqlUtils.getEntityClass(query)); if (sqlEntityInfo.testTrueFieldNamesOnly(query.getFields())) { record = getSqlStatementExecutor().executeSingleRecordResultQuery(connection, sqlDataSourceDialect.prepareFindStatement(query), false); } else { SqlFieldInfo idFieldInfo = sqlEntityInfo.getIdFieldInfo(); List<?> idList = valueList(idFieldInfo.getFieldType(), idFieldInfo.getName(), query); if (!idList.isEmpty()) { Query<T> findQuery = query.copyNoCriteria(); findQuery.add(new Amongst(idFieldInfo.getName(), idList)); record = getSqlStatementExecutor().executeSingleRecordResultQuery(connection, sqlDataSourceDialect.prepareFindStatement(findQuery), false); } } fetchChildRecords(record, query.getSelect(), false); } catch (UnifyException e) { throw e; } catch (Exception e) { throw new UnifyException(e, UnifyCoreErrorConstants.COMPONENT_OPERATION_ERROR, getClass().getSimpleName()); } return record; }
@Override public List<? extends Listable> execute(Locale locale, ZeroParams params) throws UnifyException { return clusterService .findClusterNodes((ClusterNodeQuery) new ClusterNodeQuery().ignoreEmptyCriteria(true).order("nodeId")); } }
@SuppressWarnings({ "unchecked", "rawtypes" }) public Query<T> copyNoCriteria() { Query<T> query = new Query(entityClass, applyAppQueryLimit); query.select = select; query.order = order; query.offset = offset; query.limit = limit; query.ignoreEmptyCriteria = ignoreEmptyCriteria; query.mustMatch = mustMatch; return query; }
@Override public List<Authentication> findAuthentications(AuthenticationQuery query) throws UnifyException { Query<Authentication> cloneQuery = query.copy(); cloneQuery.select("id", "name", "description", "cryptograph", "status", "statusDesc"); return db().listAll(cloneQuery); }
@Override public void clear() throws UnifyException { setRecordList(null); crudData.setParentId(null); crudData.getQuery().clear(); }
@Override public <T, U extends Entity> Map<T, U> findAllMap(Class<T> keyClass, String keyName, Query<U> query) throws UnifyException { try { SqlEntityInfo sqlEntityInfo = sqlDataSourceDialect.getSqlEntityInfo(query.getEntityClass()); if (sqlEntityInfo.testTrueFieldNamesOnly(query.getFields())) { return getSqlStatementExecutor().executeMultipleRecordResultQuery(connection, keyClass, keyName, sqlDataSourceDialect.prepareFindStatement(query)); } SqlFieldInfo idFieldInfo = sqlEntityInfo.getIdFieldInfo(); List<?> idList = valueList(idFieldInfo.getFieldType(), idFieldInfo.getName(), query); if (!idList.isEmpty()) { Query<U> findQuery = query.copyNoCriteria(); findQuery.add(new Amongst(idFieldInfo.getName(), idList)); return getSqlStatementExecutor().executeMultipleRecordResultQuery(connection, keyClass, keyName, sqlDataSourceDialect.prepareFindStatement(findQuery)); } } catch (UnifyException e) { throw e; } catch (Exception e) { throw new UnifyException(e, UnifyCoreErrorConstants.COMPONENT_OPERATION_ERROR, getClass().getSimpleName()); } return new HashMap<T, U>(); }