是否可以使用QueryHint从namedquery中引用EntityGraph?
@NamedEntityGraphs({
@NamedEntityGraph (name="User.detail",
attributeNodes= {
@NamedAttributeNode("defaultRole"),
@NamedAttributeNode("defaultAuth")
}),
@NamedEntityGraph (name="User.fullDetail",
attributeNodes= {
....
},
subgraphs = {
.....
})
})
@NamedQueries ({
@NamedQuery (name=User.QUERY_FIND_BY_USER_NAME,
query="select u from User u where u.userName=:" + DmUser.PARAM_USER_NAME,
hints = {
@QueryHint (name="javax.persistence.loadgraph", value="User.detail")
})
})
@Entity
public class User
{
public static final String QUERY_FIND_BY_USER_NAME="DmUser.findByUserName";
public static final String PARAM_USER_NAME="userName";
....
@ManyToOne (fetch=FetchType.EAGER)
@JoinColumn (name="defaultRoleId", referencedColumnName="roleId")
private Role defaultRole;
@ManyToOne (fetch=FetchType.EAGER)
@JoinColumn (name="defaultAuthId", referencedColumnName="authId")
private Auth defaultAuth;
....
}
存储库:
public interface UserRepository extends GenericRepository<User, String>
{
// @EntityGraph (value="DmUser.fullDetail", type=EntityGraphType.LOAD)
public User findByUserName(@Param (value="userName") String userLoginName);
}
它对我不起作用。评论代码工作正常。我已经测试了图形和来自实体管理器的命名查询。但我想看看如果我可以使用@NamedQuery声明本身使用查询提示使EntityGraph工作,使其更清晰。