Documentation



Send Feedback | Print | PDF | ePub | Mobi
Java Platform, Enterprise Edition: The Java EE Tutorial

43.3 Using Entity Graphs in Query Operations

To specify entity graphs for both typed and untyped queries, call the setHint method on the query object and specify either javax.persistence.loadgraph or javax.persistence.fetchgraph as the property name and an EntityGraph instance as the value:

EntityGraph<EmailMessage> eg = em.getEntityGraph("previewEmailEntityGraph");
List<EmailMessage> messages = em.createNamedQuery("findAllEmailMessages")
 .setParameter("mailbox", "inbox")
 .setHint("javax.persistence.loadgraph", eg)
 .getResultList();

In this example, the previewEmailEntityGraph is used for the findAllEmailMessages named query.

Typed queries use the same technique:

EntityGraph<EmailMessage> eg = em.getEntityGraph("previewEmailEntityGraph");
CriteriaQuery<EmailMessage> cq = cb.createQuery(EmailMessage.class);
Root<EmailMessage> message = cq.from(EmailMessage.class);
TypedQuery<EmailMessage> q = em.createQuery(cq);
q.setHint("javax.persistence.loadgraph", eg);
List<EmailMessage> messages = q.getResultList();

AltStyle によって変換されたページ (->オリジナル) /

Table of Contents

Java Platform, Enterprise Edition: The Java EE Tutorial

|