0
我正在使用eclipselink 2.5.1。与FK的EclipseLink复合PK
假设我有这两个班级。
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...
}
汽车具有复合主键(idManufacturor和日期),并idManufacturor也是一个外键引用类Manufacturor。
我遇到了映射问题。 EclipseLink将制造商对象理解为我的Car表中的一列。
错误
Internal Exception: com.microsoft.sqlserver.jdbc.SQLServerException: invalid column name : 'manufacturor'.
我知道如果我增加一列manufacturor FK,但它会被重复的问题将得到解决。
如果我不够清楚,请随时索要任何精度。
谢谢你的帮助。
感谢您的帮助,我尝试添加注释,但出现此错误:异常说明:字段[CAR.IDMANUFACTUROR]存在多个可写映射。只有一个可以被定义为可写,所有其他都必须被指定为只读。 – Knriano
将updatable = false和insertable = false添加到JoinColumn注记中。 – tak3shi
你刚刚救了我一天,谢谢:) – Knriano