首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

JPA中关联关系的照射

2012-10-09 
JPA中关联关系的映射一对一双向关联package cn.com.jyp.modelimport javax.persistence.Entityimport ja

JPA中关联关系的映射
一对一双向关联

package cn.com.jyp.model;import javax.persistence.Entity;import javax.persistence.GeneratedValue;import javax.persistence.Id;import javax.persistence.OneToOne;@Entitypublic class Person {private int id;private String name;// 姓名private IDCard idcard;@Id@GeneratedValuepublic int getId() {return id;}public void setId(int id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}@OneToOne(mappedBy = "person")public IDCard getIdcard() {return idcard;}public void setIdcard(IDCard idcard) {this.idcard = idcard;}}package cn.com.jyp.model;import javax.persistence.Entity;import javax.persistence.GeneratedValue;import javax.persistence.Id;import javax.persistence.JoinColumn;import javax.persistence.OneToOne;@Entitypublic class IDCard {private int id;private String cardNumber;// 身份证号private Person person;@Id@GeneratedValuepublic int getId() {return id;}public void setId(int id) {this.id = id;}public String getCardNumber() {return cardNumber;}public void setCardNumber(String cardNumber) {this.cardNumber = cardNumber;}@OneToOne(optional = false)@JoinColumn(name = "person_id")public Person getPerson() {return person;}public void setPerson(Person person) {this.person = person;}}


一对多双向关联
package cn.com.jyp.model;import java.util.HashSet;import java.util.Set;import javax.persistence.CascadeType;import javax.persistence.Column;import javax.persistence.Entity;import javax.persistence.FetchType;import javax.persistence.GeneratedValue;import javax.persistence.Id;import javax.persistence.OneToMany;@Entitypublic class Department {private int id;// 编号private String name;// 部门名称private Set<Employee> employees = new HashSet<Employee>();@Id@GeneratedValuepublic int getId() {return id;}public void setId(int id) {this.id = id;}@Column(length = 15, nullable = false)public String getName() {return name;}public void setName(String name) {this.name = name;}@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "department")public Set<Employee> getEmployees() {return employees;}public void setEmployees(Set<Employee> employees) {this.employees = employees;}}package cn.com.jyp.model;import javax.persistence.Column;import javax.persistence.Entity;import javax.persistence.GeneratedValue;import javax.persistence.Id;import javax.persistence.JoinColumn;import javax.persistence.ManyToOne;@Entitypublic class Employee {private int id;// 编号private String name;// 姓名private Department department;@Id@GeneratedValuepublic int getId() {return id;}public void setId(int id) {this.id = id;}@Column(length = 15, nullable = false)public String getName() {return name;}public void setName(String name) {this.name = name;}@ManyToOne(optional = false)@JoinColumn(name = "department_id")public Department getDepartment() {return department;}public void setDepartment(Department department) {this.department = department;}}


多对多双向关联
package cn.com.jyp.model;import java.util.HashSet;import java.util.Set;import javax.persistence.Entity;import javax.persistence.GeneratedValue;import javax.persistence.Id;import javax.persistence.JoinColumn;import javax.persistence.JoinTable;import javax.persistence.ManyToMany;@Entitypublic class Teacher {private int id;private String name;private Set<Student> students = new HashSet<Student>();@Id@GeneratedValuepublic int getId() {return id;}public void setId(int id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}@ManyToMany@JoinTable(name = "teacher_student", inverseJoinColumns = @JoinColumn(name = "student_id"), joinColumns = @JoinColumn(name = "teacher_id"))public Set<Student> getStudents() {return students;}public void setStudents(Set<Student> students) {this.students = students;}}package cn.com.jyp.model;import java.util.HashSet;import java.util.Set;import javax.persistence.Entity;import javax.persistence.GeneratedValue;import javax.persistence.Id;import javax.persistence.ManyToMany;@Entitypublic class Student {private int id;private String name;private Set<Teacher> teachers = new HashSet<Teacher>();@Id@GeneratedValuepublic int getId() {return id;}public void setId(int id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}@ManyToMany(mappedBy = "students")public Set<Teacher> getTeachers() {return teachers;}public void setTeachers(Set<Teacher> teachers) {this.teachers = teachers;}}

热点排行