Hibernate 命名查询中的错误

Hibernate 命名查询中的错误,hibernate,foreign-keys,hql,named-query,Hibernate,Foreign Keys,Hql,Named Query,我收到以下错误消息: HibernateException: Errors in named queries: History.findByWeekId 我的实体类如下所示: @Entity @Table(name = "xyz_History") @NamedQueries({ @NamedQuery(name = "History.findByWeekId", query = "

我收到以下错误消息:

HibernateException: Errors in named queries: History.findByWeekId
我的实体类如下所示:

    @Entity
        @Table(name = "xyz_History")
        @NamedQueries({
            @NamedQuery(name = "History.findByWeekId",
                        query = "SELECT h FROM History h WHERE h.weekId = :weekId")
        })

        public class History extends BaseEntity {

        @ManyToOne( fetch = FetchType.EAGER, cascade = CascadeType.ALL )
        @JoinColumn(name = "weekId", nullable = false )
        @ForeignKey(name = "FK_History_WeeklyOverview")
        private WeeklyOverview weeklyOverview;
...
问题似乎出在孩子身上。如果我尝试使用此查询而不是命名查询:

        ...createQuery( "SELECT ah FROM History ah WHERE ah.weekId = :weekId " )
        .setParameter("weekId", weekId)
        .getResultList();
我收到错误消息: 无法解析属性:weekId of:com.john.doe.History

作为参数传入的weekId是一个长字符串。DB字段是一个整数。这有问题吗

或者如何正确查询@JoinColumn

WeeklyOverview实体:

@Entity
@Table(name = "xyz_WeeklyOverview")
public class WeeklyOverview {
@Id
@GeneratedValue
private Long id;
...
}

发生错误的原因是历史记录实体中没有名为
weekId
的字段。 您需要的字段是
周概览
,查询如下:

@NamedQuery(name = "History.findByWeekId",
           query = "select h from History h where h.weeklyOverview.id = :weekId")

您可以添加周概览代码吗?谢谢,它现在可以工作了。我想我可以使用“weekId”,因为@JoinColumn的名称是“weekId”。似乎不是。。。