Извлечение определенных данных из ArrayList - PullRequest
0 голосов
/ 07 июня 2018

Привет. Я пытаюсь создать логин пользователя, в котором пользователь вводит свое имя пользователя и пин-код, а затем мои службы REST извлекают имя пользователя и пин-код, чтобы проверить их соответствие.В тот момент, когда у меня это работает, хотя это с помощью запроса GET, отправляемого через employeeId в качестве параметра, но это означает, что я должен жестко кодировать employeeId в моем приложении для Android.

Я сейчас пытаюсь POST для getRecords (), которыйвернул всех пользователей и их данные в ArrayList.

Вот мой метод getRecords () в моей службе REST:

 @Override
public List<UsersTable> getSpecificRecords(UserTableCriteria entity) {

    boolean criteriaSet = false;
    int firstResult = 0;
    List<UsersTable> entityReturned;

    // check if web side sent in any record retrieval instructions and use
    // them instead
    if (entity.getFirstResult() != null) {
        firstResult = entity.getFirstResult();
    }

    // if maximum results to be returned sent by web application 
    // is less than normall allowed use that value
    if (entity.getMaxResults() != null && entity.getMaxResults() < ApplicationConstants.MAX_RETURNED_RESULTS) {
        maxResults = entity.getMaxResults();
    } else {
        maxResults = ApplicationConstants.MAX_RETURNED_RESULTS;
    }

    if (!session.isOpen()) {
        this.session = HibernateUtil.getApplicationSessionFactory().getCurrentSession();
    }

    Transaction tx = session.beginTransaction();
    session.clear();
    Criteria criteria = session.createCriteria(UsersTable.class);


    if (!StringUtils.isEmpty(entity.getUserName())) {
        if (entity.getUserName().contains("*")) {
            criteria.add(Restrictions.ilike("userName", entity.getUserName().replace('*', '%')));

        } else {
            criteria.add(Restrictions.eq("userName", entity.getUserName()).ignoreCase());
        }
        criteriaSet = true;
    }

    // set the sort order of the returned records
    criteria.addOrder(Order.desc("userName"));

    criteria.setMaxResults(maxResults);

    criteria.setFirstResult(firstResult);

    // validate there is at least one value to search on and run the query
    if (criteriaSet) {
        entityReturned = criteria.list();
        session.close();
        return entityReturned;
    }

    session.close();

    return new ArrayList<>();

}

РЕДАКТИРОВАТЬ: Код контроллера

@POST
@Secured
@Path("/")
@Produces("application/xml, application/json")
@Consumes(MediaType.APPLICATION_JSON)
public Response getSpecificRecords(@HeaderParam("securityToken") String token, UserTableCriteria entity) {

    // retrieve a list of entities based on specific criteria
    UsersTableList entityList;

    try {

        entityList = usersTableBO.getSpecificRecords(entity);
        LOGGER.debug("Successful single key table get specific was processed");

    } catch (NotFoundException ex) {

        LOGGER.debug(MessageFormat.format("Single key table get Specific failed because of error: {0}", ex.getMessage()));
        return returnEntityResponse(Response.Status.NO_CONTENT);

    }

    return returnEntityResponse(entityList, Response.Status.OK);

}

Как мне добиться того, что я пытаюсь сделать?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...