0

私はnetbean 6.8 btwを使用しています。、、 、 の
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

私の意見では、Java EE チュートリアルの第 27 章 - Java Persistence Query Languageは適切な紹介であり、JPQL を使い始めるのに役立ちます。これは、実際に開始する必要がある場所です。

于 2010-06-09T22:40:24.860 に答える
1

リレーションシップは、@ManyToOne(コレクションなどで) を使用しDocumentて宣言し、JPA クエリで使用する必要があります。たとえば、特定のプロジェクトのすべてのドキュメントを選択します。projectsinner join

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