Spring JPA 2.1:类

时间:2017-04-04 01:47:24

标签: spring hibernate jpa-2.1

是否可以使用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工作,使其更清晰。

0 个答案:

没有答案