命名查询出错

时间:2017-12-04 06:49:59

标签: hibernate

我收到org.hibernate.HibernateException: Errors in named queries: getPreferenceById,这是我的查询

@NamedQueries({
    @NamedQuery(name = "getPreferenceById", 
    query = "select p from Preference p where p.profile.id=:Id") })

这是我的偏好类

@Entity(name = "perference")
public class Preference {

    @OneToOne
    @JoinColumn(name = "id", nullable = false)
    private Profile profile;

}

该查询用于获取给定profileId(id)的首选项,但它给出了错误。我在Profile类中有一个类似的命名查询,但它没有给出错误。

我在堆栈跟踪中找到了这个,

Error in named query: getPreferenceById
org.hibernate.hql.internal.ast.QuerySyntaxException: Preference is not mapped 
[select p from Preference p where p.profile.id=:Id]

我已将javax @Entity注释添加到首选项

此命名查询有什么问题?

2 个答案:

答案 0 :(得分:0)

我终于通过将NamedQueries更改为NativeNamedQueries来了解这一点我不知道为什么会有效

答案 1 :(得分:0)

似乎存在拼写错误,将Preference更改为preference

@NamedQueries({
    @NamedQuery(name = "getPreferenceById", 
    query = "select p from preference p where p.profile.id=:Id") })

当您使用@Entity(name = "perference")来映射课程时。