【问题标题】:Hibernate Annotations Id for table with no primary key没有主键的表的休眠注释 ID
【发布时间】:2012-06-28 15:27:15
【问题描述】:

我有一张没有主键的表,也无法创建。我可以使用该表的三列构造一个唯一键。现在hibernate要求每个带注释的类都有一个id,我如何用我可以创建的唯一id来满足这个id。

【问题讨论】:

    标签: sql hibernate hibernate-annotations


    【解决方案1】:

    如果是entity type,那么您应该使用复合键。这可以通过将主键字段移动到单独的类并使用@Id 注释将其映射到实体类中来完成。

    Mapping composite primary keys and foreign keys to composite primary keys

    如果它不是实体而是值类型,则应相应地映射它。 见https://stackoverflow.com/a/1696146/324900Entity and value types in hibernate

    【讨论】:

    • 是的,你可以。但是你说你没有主键那么这个表在理论上不是一个“实体”。这应该是另一个实体的一部分,您可以将多个表映射到 Hibernate 中的单个实体。
    • Hibernate(通常也不是 JPA)不关心您是否在表上定义了主键。您只需要唯一标识每一行的一列或一组列。列必须全部不可为空。
    • @Steve,似乎我误解了这个问题,更新了我的答案,将复合 ID 作为第一选项。
    猜你喜欢
    • 2012-01-25
    • 1970-01-01
    • 2018-01-15
    • 2015-12-15
    • 1970-01-01
    • 2012-03-21
    • 1970-01-01
    • 2016-04-09
    • 1970-01-01
    相关资源
    最近更新 更多