EclipseLink 复合 PK 与 FK
EclipseLink composite PK with FK
我正在使用 eclipselink 2.5.1。
假设我有这两个 class。
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 也是引用 class 制造商的外键。
我在映射方面遇到问题。 EclipseLink 将制造商对象理解为我的 Car table.
中的一个列
错误
Internal Exception: com.microsoft.sqlserver.jdbc.SQLServerException: invalid column name : 'manufacturor'.
我知道如果我添加一个列制造商 FK 问题将得到解决,但它会重复。
如果我不够清楚,请随时询问任何精确度。
感谢您的帮助。
添加 JoinColumn 注释
@JoinColumn(name = "id_manufacturor", referencedColumnName = "id")
名称是您数据库中的 FK 列名称(不是实体)。
referencedColumnName "id" 必须对应于制造商 table 中定义的 id。
我正在使用 eclipselink 2.5.1。
假设我有这两个 class。
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 也是引用 class 制造商的外键。
我在映射方面遇到问题。 EclipseLink 将制造商对象理解为我的 Car table.
中的一个列错误
Internal Exception: com.microsoft.sqlserver.jdbc.SQLServerException: invalid column name : 'manufacturor'.
我知道如果我添加一个列制造商 FK 问题将得到解决,但它会重复。
如果我不够清楚,请随时询问任何精确度。
感谢您的帮助。
添加 JoinColumn 注释
@JoinColumn(name = "id_manufacturor", referencedColumnName = "id")
名称是您数据库中的 FK 列名称(不是实体)。
referencedColumnName "id" 必须对应于制造商 table 中定义的 id。