Доступ к данным из одной таблицы - PullRequest
0 голосов
/ 24 апреля 2020

У меня есть 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")})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...