【问题标题】:Mapping a Natural Key with Hibernate Annotations使用 Hibernate 注释映射自然键
【发布时间】:2009-09-21 04:09:40
【问题描述】:

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

我把它映射成这样:

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

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

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

【问题讨论】:

    标签: hibernate annotations primary-key


    【解决方案1】:

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

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

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

    【讨论】:

    • 我在 Google 上看到过同样的问题。
    猜你喜欢
    • 2023-03-22
    • 2013-11-25
    • 1970-01-01
    • 2015-08-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-26
    • 1970-01-01
    相关资源
    最近更新 更多