【问题标题】:Hibernate the same column in the primary key and in the id在主键和 id 中休眠相同的列
【发布时间】:2017-10-03 21:47:49
【问题描述】:

我有多个主键的表,所以我必须创建可嵌入类。此键中的一列是另一个表的外键。如何为其创建 JPA 注释?

public class ControlPlanLineEmbeddable implements Serializable{

    @Column(name = "[Control Plan No_]")
    String controlPlanNo;

    @Column(name ="[Version]")
    String version;

    @Column(name ="[Line No_]")
    int lineNo;   

    @ManyToOne
    @JoinColumn(name="Control Plan No_")
    ControlPlanSetup xxx;
....

所以我只有 3 列,我正在尝试创建 4 个注释。列Control Plan No_ 是主键的一部分,也是不同表中的外键。我必须创建@ManyToOne 注释,但我收到:

从 POJO.ControlPlanLine 引用 POJO.ControlPlanSetup 的外键 列数错误。应该是 4

【问题讨论】:

  • 你能分享相关的表架构吗?
  • 通常你可以在一个字段上同时有@Id@ManyToOne注解,这意味着它是这个实体的主键,同时也是目标的FK。可嵌入类也可以包含关系字段。如果您在问题中添加了代码的所有相关部分,将会有所帮助。

标签: java hibernate jpa


【解决方案1】:

上次我还需要让我的 PK 也成为另一个实体的 FK。有帮助就来了

@MapsId

来自 (javax.persistence.MapsId;) 的注释。我相信使用它可以解决您的问题。

【讨论】:

    猜你喜欢
    • 2012-03-21
    • 2014-03-27
    • 2010-12-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-08
    • 2016-08-22
    • 1970-01-01
    相关资源
    最近更新 更多