我有以下命名查询:
@NamedQueries({
@NamedQuery(name ="Movies.findByTitle", query = "SELECT m FROM Movies m WHERE m.title = :title")
})
当我尝试像下面这样执行它时:
public List<T> findByTitle(String title) {
return getEntityManager().
createNamedQuery("Movies.findByTitle").
setParameter("findByTitle", title).
getResultList();
}
然后我得到以下异常:
您尝试使用查询字符串SELECT m FROM Movies m WHERE m.s title =:title.
中不存在的findByTitle名称设置参数值。这是如何引起的,我该如何解决?
需要设置正确的参数名称。您可以在查询中看到参数名为"title"不是"findByTitle".
setParameter("findByTitle", title)
改为setParameter("title", title)