IMHO Chapter 3.7.4.2 of the JPA spec says that @NamedEntityGraph can be used instead of fetch joins. For instance: {code} @Entity @Table(name = "kunde") @DiscriminatorColumn(name = "art", length = 1) @NamedQueries({...}) @NamedEntityGraphs({ @NamedEntityGraph(name = "bestellungen", attributeNodes = @NamedAttributeNode("bestellungen"))}) public abstract class AbstractKunde implements Serializable, Cloneable {...} // 2 concrete classes are derived from the abstract class @PersistenceContext private EntityManager em; ... List<AbstractKunde> kunden = em.createNamedQuery("...", AbstractKunde.class) .setParameter("...", "...") .setHint("javax.persistence.loadgraph", "bestellungen"); .getResultList(); {code} When I try to access the attribute "bestellungen" after committing the transaction, then I get a LazyInitializationException.
|