Given these classes:
@Entity
@Table
@NamedEntityGraphs(value = {
@NamedEntityGraph(name = "User.findByLogin",
attributeNodes = {
@NamedAttributeNode(value = "profile")})
})
public class User implements Serializable{
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private int id = 0;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn
private Profile profile;
}
@Entity
@Table
public class Profile implements Serializable{
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private int id = 0;
@Column
private String name;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn
private User lastModifier;
}
I query one user with the entitygraph "User.findByLogin" as FetchGraph, the profile attribute is eagerly loaded as expected.
The issue is that profile.lastModifier is also eagerly loaded.
I think that it profile.lastModifier should respect the default Profile graph and then be Lazy loaded.
Note: I also tried to define an empty Profile subgraph in "User.findByLogin" without effect. profile.lastModifier is still eagearly loaded.
|