CVariacaoTO类有一个复合键(FK_T,FK_F,FK_F_VARIACAO)。 (FK_F,FK_F_VARIACAO)也是FVariacaoTO表的外键,处于ManyToOne关系中。
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumns({
@JoinColumn(name = "FK_F", referencedColumnName = "FK_F", nullable = false, insertable = false, updatable = false),
@JoinColumn(name = "FK_F_V", referencedColumnName = "ID", nullable = false, insertable = false, updatable = false) })
@NotNull
private FVariacaoTO fVariacaoTO;
FVariacaoTO类有两个主键,分别为@Embeddable类FVariacaoPK。
此错误发生了:CVariacaoTO.fVariacaoTO的referencedColumnNames(FK_F,ID)未映射到单个属性
关系刚刚在CVariacaoTO类中描述。 我不知道是否需要在FVariacaoTO类中写一些关于关系的东西,制作@OneToMany或类似的东西。
通常做了什么错误? 通常这种关系是怎么做的?
编辑:其他信息。
在FVariacaoTO类中,键为@EmbeddedId:
@EmbeddedId
@AttributeOverrides({
@AttributeOverride(name = "fkF", column = @Column(name = "fkF", nullable = false)),
@AttributeOverride(name = "id", column = @Column(name = "id", nullable = false)) })
@NotNull
private FVariacaoPK fVariacaoPK;
在FVariacaoPK类中,有@EmbeddedId:
@Column(name = "FK_F", nullable = false) private int fkF;
@Column(name = "ID", nullable = false) private int id;
答案 0 :(得分:0)
尚未运行该应用程序,因为还有其他问题需要解决,但是下一步编译器不再抱怨此问题:
@JoinColumn(name = "FK_F", referencedColumnName = "fkF", nullable = false, insertable = false, updatable = false),
@JoinColumn(name = "FK_F_V", referencedColumnName = "id", nullable = false, insertable = false, updatable = false)
我在referencedColumnName中设置了FVariacaoTO中的字段名称,而不是FVariacaoPK中的@Embedabble对象