gpt4 book ai didi

java - EclipseLink 复合 PK 与 FK

转载 作者:行者123 更新时间:2023-12-02 13:37:07 25 4
gpt4 key购买 nike

我使用的是 eclipselink 2.5.1。

假设我有这两门课。

JAVA

@Entity
public class Car implements Serializable {
@EmbeddedId
protected CarPK carPK;

private String color;
@ManyToOne(fetch = FetchType.LAZY)
private Manufacturor manufacturor;
//constructors, getters & setters...
}
<小时/>
@Embeddable
public class CarPK implements Serializable {
@NotNull
private int idManufacturor;
@Temporal(javax.persistence.TemporalType.DATE)
private Date date;
//constructors, getters & setters...
}

Car 有一个复合主键(idManufacturor 和日期),idManufacturor 也是引用 Manufacturor 类的外键。

我在映射时遇到问题。 EclipseLink 将制造商对象理解为我的 Car 表中的一列。

错误

Internal Exception: com.microsoft.sqlserver.jdbc.SQLServerException: invalid column name : 'manufacturor'.

我知道如果我添加色谱柱制造商 FK,问题就会得到解决,但它会重复。

如果我不够清楚,请随时询问任何精度。

感谢您的帮助。

最佳答案

添加 JoinColumn 注释

@JoinColumn(name = "id_manufacturor", referencedColumnName = "id")

名称是数据库中的 FK 列名称(不是实体)。

referencedColumnName“id”必须与制造商表中定义的id相对应。

关于java - EclipseLink 复合 PK 与 FK,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42925218/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com