Я начинаю с весенней загрузки и JPA 2.0. Мой api запускает запрос из mysql db, который имеет одну запись. По какой-то причине API возвращает результирующий набор запросов без остановок.Весенние атрибуты API загрузки загружаются несколько раз
Забавно, что если я верну свой размер вектора, он отлично работает, но когда я возвращаю список <>, он выполняет несколько раз тот же код.
Я подозреваю, что мне может потребоваться установить флаг для остановки соединения или чего-то еще. Любые идеи о том, что может быть причиной этого?
//controller
@RestController
public class ClientController {
@RequestMapping("/client")
public List<Client> client(@RequestParam(value="name", defaultValue="World") String name) {
Client clientModel = new Client();
List<Client> clients = clientModel.getClients();
//return clients.size();
return clients;
}
}
//model
public List<Client> getClients() {
try {
EntityManagerFactory emf = Persistence
.createEntityManagerFactory("CRM");
EntityManager em = emf.createEntityManager();
CriteriaBuilder cb = em.getCriteriaBuilder();
CriteriaQuery<Client> q = cb.createQuery(Client.class);
Root<Client> c = q.from(Client.class);
q.select(c);
List<Client> clients = em.createQuery(q).getResultList();
// ArrayList<Client> clients = (ArrayList<Client>) q.select(c);
em.close();
emf.close();
return clients;
} catch (Exception e) {
throw e;
}
}
У вас есть только одна запись в БД? – leeor
Я уверен. API продолжает возвращать несколько списков с одной и той же записью. Когда я раскомментирую вызов .size(), он возвращает 1. Также, когда я запускаю его в режиме отладки, точка останова обращается несколько раз в вызов метода. – wdoering
@wdoering Я считаю, что проблема не в коде, который вы отправили, это скорее всего в вашем интерфейсе. Не могли бы вы протестировать соответствующий REST API, используя [curl] (https://wiki.duraspace.org/display/DURACLOUDDOC/REST+API+Examples+Using+curl) или [Почтальон] (https://www.getpostman.com /) и еще раз скажите, что произойдет? – jweyrich