我的命名查询有问题,但我不知道为什么它不起作用。
这是我定义查询的方式:
@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
答案 0 :(得分:3)
NamedQuery不能有本机查询。 检查您的实体中是否有user_id。 user_id看起来像是DB中的一列。 如果是这样,将其更改为java字段
SELECT s from Rating s where s.userId = :user_id