0

我正在使用 netbean 6.8 顺便说一句。
假设我有 4 个不同的表:CompanyFacilityProjectDocument。所以关系是这样的。一个公司可以有多个设施。一个设施可以有多个项目,一个项目可以有多个文档。

Company:
+companyNum: PK
+facilityNum: FK

Facility:
+facilityNum: PK
+projectNum: FK

Project:
+projectNum: PK
+drawingNum: FK

因此,当我Entity Class From Database在 netbean 6.8 中创建时,我有 4 个以上述 4 个表命名的实体类。因此,如果我想查看Document数据库中的所有内容,那很容易。在我的SessionBean中,我会这样做:

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

然而,这还不是我所需要的。假设我想知道Document某个特定Company的所有内容,或者Document某个特定Project的某个Facility特定的所有内容Company。作为一个整体,我对 JPA + EJB + JSF 非常陌生。请帮帮我。

4

2 回答 2

1

您的关系应该使用@ManyToOne(例如在Document集合中projects)声明,然后inner join在 JPA 查询中使用,例如选择给定项目的所有文档:

select d from Document d inner join d.projects p where p.id = ?
于 2010-06-09T20:44:51.990 回答
1

在我看来,Java EE 教程中的第 27 章 - Java 持久性查询语言是一个不错的介绍,它将帮助您开始使用 JPQL。这实际上是您应该开始的地方。

于 2010-06-09T22:40:24.860 回答