Hibernate命名查询错误

时间:2014-04-30 11:06:23

标签: hibernate named-query

我的命名查询有问题,但我不知道为什么它不起作用。

这是我定义查询的方式:

@NamedQueries({
    @NamedQuery(
        name = Rating.FIND_ALL,
        query = "from Rating"
    ), 

    @NamedQuery(
        name = "getUserRatings",
        query = "SELECT s from Rating s where s.user_id = :user_id"
    )
})

在这里我用它:

public List<Rating> getUserRatings(User user){
    return em.createNamedQuery("getUserRatings", Rating.class).setParameter("user_id", user.getId()).getResultList();
}

错误:由以下原因引起:org.hibernate.HibernateException:命名查询中的错误:getUserRatings

1 个答案:

答案 0 :(得分:3)

NamedQuery不能有本机查询。 检查您的实体中是否有user_id。 user_id看起来像是DB中的一列。 如果是这样,将其更改为java字段

SELECT s from Rating s where s.userId = :user_id