Java DuplicateMappingException由不同的逻辑列名表示
我对两个类MasavNew和MasavRow使用OneToMany映射:Java DuplicateMappingException由不同的逻辑列名表示,java,hibernate,jpa,Java,Hibernate,Jpa,我对两个类MasavNew和MasavRow使用OneToMany映射: @Entity @Table(name = "ArgoCHFileHdr") public class MasavNew { @OneToMany(fetch = FetchType.LAZY, mappedBy = "msv",cascade = CascadeType.ALL) @ElementCollection(targetClass=MasavRow.class) private List<Masav
@Entity
@Table(name = "ArgoCHFileHdr")
public class MasavNew {
@OneToMany(fetch = FetchType.LAZY, mappedBy = "msv",cascade = CascadeType.ALL)
@ElementCollection(targetClass=MasavRow.class)
private List<MasavRow> rows;
@Id
@Column(name = "[Arg.CH.F.Key]", nullable = false)
@GeneratedValue(strategy=GenerationType.IDENTITY)
protected Integer argCHFKey;
}
@Entity
@Table(name = "ArgoCHFileRow")
@DynamicUpdate
public class MasavRow extends IModel {
@ManyToOne(fetch = FetchType.LAZY,optional=true)
@JoinColumn(name="[Arg.CH.F.Key]")
private MasavNew msv;
@Id
@Column(name = "[Arg.CH.F.Key]", nullable = false)
private int argCHFKey;
@Id
@Column(name = "[Arg.CH.L.MNB]", nullable = false)
@GeneratedValue(strategy=GenerationType.IDENTITY)
private Integer argCHLMNB;
@Column(name = "[Erp.Clnt]", nullable = true)
private String erpClnt;
}
如何解决此问题?删除
@Id
@Column(name = "[Arg.CH.F.Key]", nullable = false)
private int argCHFKey;
因为您可以从msv对象获取密钥。当我直接使用tableoverride您的getArgCHFKey()方法返回msv.getKey()时,我希望使用此列;我需要通过argCHFKey从ArgoCHFileRow表中检索所有行
@Id
@Column(name = "[Arg.CH.F.Key]", nullable = false)
private int argCHFKey;