Posiadam jednostkę Ride, która osadza osadzaną "encję" Route. Route ma właściwość List miast z relacją ManyToMany, więc ma fetchtype LAZY (i nie chcę używać EAGER). Więc chcę zdefiniować NamedEntityGraph dla podmiotu jazda, aby załadować załadować Przejażdżkę obiekt o Route z instantied Lista miast. Ale gdy wdrożyć moja wojna, otrzymuję ten wyjątek:JPA SubGraph do definiowania typu fetchty właściwości osadzonej.
java.lang.IllegalArgumentException: Attribute [trasy] nie jest zarządzanych typu
Przejażdżkę
@Entity
@NamedQueries({
@NamedQuery(name = "Ride.findAll", query = "SELECT m FROM Ride m")})
@NamedEntityGraphs({
@NamedEntityGraph(
name = "rideWithInstanciatedRoute",
attributeNodes = {
@NamedAttributeNode(value = "route", subgraph = "routeWithTowns")
},
subgraphs = {
@NamedSubgraph(
name = "routeWithTowns",
attributeNodes = {
@NamedAttributeNode("towns")
}
)
}
)
})
public class Ride implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
@Embedded
private Route route;
// some getter and setter
}
Trasa
@Embeddable
public class Route implements Serializable {
private static final long serialVersionUID = 1L;
@ManyToMany
private List<Town> towns;
// some getter and setter
}