Получить список объектов из запроса HQL с совместной
У меня есть две таблицы: клиенты и команды, это @OneToMany
отношение от клиента к командам, один клиент имеет много команд. команды таблицы содержат: idCommand, date, nameCommande, idCustomer
, Таблица клиентов содержит: idCustomer, nameClient, email
, Все JPA и EJB настроены, и я могу легко получить список команд или клиентов, используя запрос HQL в управляемом бине, и перечислить их в JSP, используя этот код.
public List<Commande> selectAllCommandes() {
List<Commande> commandes = em.createQuery("select c from Commande c").getResultList();
return commandes;
}
public List<Customer> selectAllCustomers() {
List<Customer> customers = em.createQuery("select cu from Customer cu").getResultList();
return customers;
}
Как мне объединить две таблицы с idCustomer
столбец, чтобы показать имя клиента вместо его идентификатора? Я использовал этот запрос HQL
SELECT c.date, c.name Commande, cu.nameClient FROM Commande AS c, Customer AS cu WHERE cu.idCustomer = c.idCustomer
Но я понятия не имею о List<>
тип, который мне нужно использовать, чтобы получить результат /
1 ответ
Если вы отобразите обратную связь в Commande
юридическое лицо...
public class Commande {
...
@ManyToOne(mappedBy="commande")
private Client client;
// getter and setter ...
}
(Вот, mappedBy
получает имя @OneToMany
собственность, созданная на другой стороне отношений)
Затем после выполнения вашего запроса SELECT c FROM Commande c
вы получите список Commande
объекты, и для каждого из них вы можете получить имя клиента, используя: thisCommande.getClient().getName()
,