JPA + EJB + JSF: как разработать сложный запрос - PullRequest
0 голосов
/ 10 июня 2010

Я использую Netbean 6,8 BTW.
Допустим, у меня есть 4 разные таблицы: Company, Facility, Project и Document.Так что отношения это.Компания может иметь несколько объектов.Объект может иметь несколько проектов, а проект может иметь несколько документов.

Company:
+ номер компании: PK
+ номер объекта: FK

Facility:
+ номер объекта: PK
+ номер проекта: FK

Project:
+ projectNum: PK
+ DrawingNum: FK

Поэтому, когда я создаю Entity Class From Database в Netbean 6.8, у меня есть 4 класса сущностей, которые названы в честь вышестолы.Так что если я хочу увидеть все Document в базе данных, то это легко.В моем SessionBean я бы сделал так:

@PersistenceContext
private EntityManager em;
List<Document> documents = em.createNamedQuery("Document.findAll").getResultList();

Однако это не все, что мне нужно.Допустим, я хочу знать все Document из определенного Company или все Document из определенного Project из определенного Facility из определенного Company.Я очень новичок в JPA + EJB + JSF в целом.Пожалуйста, помогите мне.

Ответы [ 2 ]

1 голос
/ 10 июня 2010

По моему мнению, Глава 27 - Язык запросов сохраняемости Java из Учебников по Java EE - это хорошее введение, которое поможет вам начать работу с JPQL. Это на самом деле, где вы должны начать.

1 голос
/ 10 июня 2010

Ваши отношения должны быть объявлены с использованием @ManyToOne (например, в Document на projects коллекции), а затем использовать inner join в запросах JPA, например, Выбор всего документа для данного проекта:

select d from Document d inner join d.projects p where p.id = ?
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...