当前位置: 首页 > 知识库问答 >
问题:

如何将hibernate中共享同一主键的两个实体映射到注释?

洪黎昕
2023-03-14

我是初学Hibernate的,我不知道如何使用JPA或Hibernate注释来映射这个简单的模型。我尝试建模是提供商具有全局评级,并且全局评级实体的标识符与提供商实体的标识符相同(单向OneToOne),换句话说,我希望实体全局评级中的外键同时是主的和外部的,但是提供商实体也具有实体全局评级的外键。这可能吗?

共有1个答案

柳项明
2023-03-14

您可以使用@MapsId注释来实现您想要的。

例子:

@Entity
public class Provider{

    @Id
    @GeneratedValue
    private long idProvider;

    @OneToOne(cascade=CascadeType.ALL, mappedBy="provider")
    private GlobalRating rating;

    // Getter & Setter
}

@Entity
public class GlobalRating{

    @Id
    private long idProvider;
        
    @OneToOne(cascade=CascadeType.ALL) 
    @MapsId
    @JoinColumn(name="idProvider")
    private Provider provider;
 
    // Getter & Setter          
}
 类似资料:
  • 我对下面的问题有很大的麻烦。我有一个实体“home”,我在代码中的两个不同位置使用它。问题是,需要根据使用实体的类将其映射到不同的表。 有办法做到我描述的那样吗?

  • 但是当我运行应用程序时,我会得到以下异常:

  • 问题内容: 我正在尝试建立一个PostgreSQL表,该表具有两个指向另一个表中相同主键的外键。 运行脚本时出现错误 sqlalchemy.exc.AmbiguousForeignKeysError:无法确定关系Company.stakeholder的父/子表之间的联接条件- 有多个链接表的外键路径。指定“ foreign_keys”参数,提供这些列的列表,这些列应被视为包含对父表的外键引用。 那

  • 问题内容: 我的table1和table2具有相同的架构…,我只想拥有一个实体,而不是两个(因为字段将是相同的)。在XML映射的hibernate状态下,我将如何实现这一点。所以我的目标是当我在DAO中进行查询时,如果两个表都映射到同一实体,它将如何知道要从哪个表中提取。 我试图不创建父类,然后再创建两个子类。 谢谢 问题答案: 抱歉回复晚了。我已经在stackoverflow上回答了几次这个问题

  • 我有一个与hibernate映射相关的查询。我必须使用hibernate将父表的2个唯一列映射为子实体中的2个外键。 前父表- 子表- 上面是两个表,和是子表中的参考键。 请帮助我使用注释在hibernate中正确映射。

  • Hi编写Spring应用程序,使用Spring Security。这是我的用户和帐户角色数据库: 我的实体类: 当我尝试登录我的系统我有错误: Hibernate:选择userrolese0_. username作为username3_1_0_,userrolese0_. id作为id1_0_0_,userrolese0_. id作为id1_0_1_,userrolese0_. name作为nam