多对一双向注解写法: @Entity @Table(name = "t_user") public class User { @Id @GeneratedValue private int id; private String name; @ManyToOne private Group group;
}
@Entity @Table(name = "t_group") public class Group { @Id @GeneratedValue private int id; private String name; @OneToMany(mappedBy="group") private Set<User> users = new HashSet<User>(); }
多对多双向注解:
@Entity public class Student { @Id @GeneratedValue private int id; private String name; //@ManyToMany(mappedBy="students") @ManyToMany @JoinTable(name="s_t", joinColumns={@JoinColumn(name="student_id")} , inverseJoinColumns={@JoinColumn(name="teacher_id")} ) private Set<Teacher> teachers = new HashSet<Teacher>(); }
@Entity public class Teacher { @Id private int id; private String name; @ManyToMany(mappedBy="teachers")
/*@JoinTable(name = "t_s", joinColumns = { @JoinColumn(name = "teacher_id") }, inverseJoinColumns={@JoinColumn(name="student_id")} )*/ private Set<Student> students = new HashSet<Student>(); }
多对多单项:
@Entity public class Student { @Id @GeneratedValue private int id; private String name; }
@Entity public class Teacher { @Id @GeneratedValue private int id; private String name; @ManyToMany @JoinTable(name="t_s", joinColumns={@JoinColumn(name="teacher_id")}, inverseJoinColumns={@JoinColumn(name="student_id")} ) private Set<Student> students = new HashSet<Student>(); }
一对多单项: @Entity @Table(name="t_group") public class Group { @Id @GeneratedValue private int id; private String name; }
@Entity @Table(name="t_user") public class User { @Id @GeneratedValue private int id; private String name; @ManyToOne private Group group; }
多对一单项:
@Entity @Table(name="t_group") public class Group { @Id @GeneratedValue private int id; private String name; @OneToMany @JoinColumn(name="groupId") private Set<User> users = new HashSet<User>(); }
@Entity @Table(name="t_user") public class User { @Id @GeneratedValue private int id; private String name; }