Привет. Я пытаюсь создать логин пользователя, в котором пользователь вводит свое имя пользователя и пин-код, а затем мои службы 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);
}
Как мне добиться того, что я пытаюсь сделать?