[英]Referenced column is not working correct with @ManyToOne hibernate-mapping
我的映射OneToMany有问题。 我的例外是org.hibernate.MappingException:实体:com.lcdut.model.SubjectsModel列的映射中重复的列:组(应使用insert =“ false” update =“ false”进行映射)
如果我使用udpatetable或插入false,那是同样的问题((
@Entity
@Table(name = "subjects")
public class SubjectsModel {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private int id;
@Column(name = "groups")
private int groups;
...........
@ManyToOne
@JoinColumns({
@JoinColumn(name = "groups", referencedColumnName = "id_group")
})
private StudentsModel studentsModel;
........
}
@Entity
@Table(name = "students")
public class StudentsModel {
@Id
@Column(name = "id")
@GeneratedValue(strategy = GenerationType.IDENTITY)
private int id;
@Basic
@Column(name = "pib")
private String pib;
@Basic
@Column(name = "id_group")
........
@OneToMany(mappedBy = "studentsModel")
private Set<SubjectsModel> subjects;
}
@Column(name = "groups")
private int groups;
...........
@ManyToOne
@JoinColumns({
@JoinColumn(name = "groups", referencedColumnName = "id_group")
})
private StudentsModel studentsModel;
........
这两个字段由同一列映射。 您不需要private int groups;
。 删除它,一切都会正常。
如果我理解正确的方法,它应该是1:n的关系,并且应该像下面这样工作(列/外键Studentid必须在数据库中以int的形式存在):
@Entity
@Table(name = "subjects")
public class SubjectsModel {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private int id;
@ManyToOne
@JoinColumn(name = "studentsid")
private StudentsModel studentsModel;
........
}
@Entity
@Table(name = "students")
public class StudentsModel {
@Id
@Column(name = "id")
@GeneratedValue(strategy = GenerationType.IDENTITY)
private int id;
@Basic
@Column(name = "pib")
private String pib;
@OneToMany(mappedBy = "studentsModel")
private Set<SubjectsModel> subjects;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.