使用Hibernate注释映射自然键

时间:2009-09-21 04:09:41

标签: hibernate annotations primary-key

我有一个遗留表,它使用一个包含日期作为表的自然主键的列。我试图用hibernate映射它,但是对于我的生活,我无法弄清楚如何让hibernate映射单个(无复合)自然键作为Id。

我把它映射成这样:

@Id
@Temporal(TemporalType.TIMESTAMP)
@Column(name = "HOLIDAY_DATE", unique = true, nullable = false, length = 7)
public Date getHolidayDate() {
    return holidayDate;
}

但是hibernate抱怨“为getHolidayDate配置了一个属性”

这样做的正确方法是什么?

1 个答案:

答案 0 :(得分:1)

您确定Hibernate是抱怨而不是您的IDE吗?

众所周知,IntelliJ Idea抱怨@Id和@Column被指定为同一方法的注释。但是,它完全有效。

如果你从Hibernate那里得到这个错误(例如当你尝试初始化SessionFactory时),请发布完整的堆栈跟踪以及整个类(实体/属性注释)