У меня есть 2 таблицы: Клиент и Заказ (отношение: 1 ко многим). Идентификатор «Клиент» связан с «Идентификатор клиента» из Заказа. Для заказов у меня есть таблица на странице. Для каждой записи этой таблицы у меня есть опция: «Просмотреть клиента». Когда я нажимаю «Просмотр клиента», я должен получить все столбцы для основного клиента на таблице. Но этого не происходит. Не могли бы вы помочь мне с этим? Ниже приведен код, который я использую. Каждый раз, когда я нажимаю «Просмотр клиента», я не получаю информацию о клиенте, даже если у меня есть записи в базе данных, которые связаны между собой. Я получаю эту ошибку: Ошибка обработки запроса; вложенным исключением является javax.persistence.NoResultException: не найден объект для запроса.
1) в ClientProvider. java
@PersistenceContext
EntityManager manager;
EntityManager managerOrder;
public Client viewClients(int a)
{
return manager.createQuery("Client.findById",Client.class).setParameter("id", a).getSingleResult();
}
2) в OrderProvider. java
public Order getOwnerId(Client c)
{
return managerOrder.createQuery("Order.findByClientId", Order.class).setParameter("clientId", c).setMaxResults(1).getSingleResult();
}
3) в OrderHandler. java
@RequestMapping(path = "/{id:[\\d]+}/clients",method = RequestMethod.GET)
public ModelAndView viewClients(@PathVariable int id, ModelMap model, @ModelAttribute("order") Order a) {
ModelAndView mav = new ModelAndView("/order/list");
model.addAttribute("order", ordServ.getClientId(a));
mav.getModelMap().addAllAttributes(model);
return mav;
}
4) Заказ. java
@XmlRootElement
@Queries({
....
@Query(name = "Order.findByClientId", query = "SELECT a FROM Order a WHERE a.clientId = :clientId")})
5) Клиент. java
@XmlRootElement
@Queries({
....
@Query(name = "Client.findById", query = "SELECT c FROM Client c WHERE c.id = :id")})