【发布时间】:2015-07-22 03:24:33
【问题描述】:
我与指导学生的实体的关系低于 1 米。导师有复合主键,我在学生中用作外键
@Entity
public class Mentor implements Serializable {
private static final long serialVersionUID = 1L;
@Id
private MentorPK id;
private String email;
@OneToMany(mappedBy="mentor")
private Set<Student> students;
public MentorPK getId() {
return id;
}
//getters and setters
}
@Embeddable
public class MentorPK implements Serializable {
private static final long serialVersionUID = 1L;
private String name;
private String add;
//getters and setters
//override equals and hashcode
}
@Entity
public class Student implements Serializable{
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
private int id;
private String name;
@ManyToOne
@MapsId("id")
@JoinColumns({
@JoinColumn(name="name_fk", referencedColumnName="name"),
@JoinColumn(name="address_fk", referencedColumnName="address")
})
private Mentor mentor;
//Getters and setters
}
然后我将上述内容保持如下,但只有导师在学生表为空的情况下保持不变。
我怎样才能让导师和学生一起坚持下去?
Set<Student> students = new HashSet<Student>();
Student s1 = new Student();
s1.setName("Student 1");
Student s2 = new Student();
s2.setName("Student 2");
students.add(s1);
students.add(s2);
MentorPK mpk = new MentorPK();
mpk.setAddress("C");
mpk.setName("D");
Mentor m = new Mentor();
m.setId(mpk);
m.setEmail("emaill");
m.setStudents(students);
studentManager.saveMentor(m);
【问题讨论】:
-
也许这实际上是学生ID主键自动生成的问题。您可以创建没有导师的学生吗?
-
@DuncanKinnear 是的,我可以
标签: java hibernate jpa orm hibernate-mapping