【问题标题】:java hibernate eclipse xml - use an entity without a primary keyjava hibernate eclipse xml - 使用没有主键的实体
【发布时间】:2011-05-06 05:47:17
【问题描述】:

我有一个问题,如果我们在数据库中创建任何表,即没有任何主键(所有列值都可以为空)。

我们不能在 Hibernate O/R Mapping 中进行没有 ID 字段的映射,即在使用 hibernate 时使用 .hbm.xml 文件。

我面临的问题是没有 ID 字段的 .hbm.xml 文件没有得到验证。

我从你们那里得到了答案,但是我有一个问题,我们可以在实体类中使用以 ID 变量为前缀的瞬态关键字,以便不将该值保存到数据库中吗?

【问题讨论】:

  • 此表是否与任何其他表以某种方式无关?
  • 据我所知,没有id你不能创建它,因为hibernate使用主键作为保持身份的方法。

标签: java hibernate


【解决方案1】:

唯一真正的解决方案是修复损坏的数据模型。没有主键的实体不是关系数据,所以不能指望 ORM 产品能够知道如何处理它。

Hibernate 将如何在没有主键或唯一标识行的情况下执行更新?

谢谢。

【讨论】:

    【解决方案2】:

    你不能在休眠状态下这样做。而且你无论如何都不应该这样做。数据库会警告您不建议没有主键。

    如果您确实没有一组构成唯一键的列,您有两种选择:

    • 添加自增主键(首选)
    • 使用原始 JDBC 从该特定表中获取数据。您可以使用 hibernate 的 session.doWork(..) 方法来做到这一点。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-02-09
      • 2014-02-19
      • 1970-01-01
      • 2012-12-05
      • 1970-01-01
      • 1970-01-01
      • 2022-10-17
      • 1970-01-01
      相关资源
      最近更新 更多