您的位置:首页 > 其它

Hibernate 4.3 注解映射

2016-05-14 12:39 369 查看
1.一对一主键关联注解

/**
* 主键关联两个1-1的表
*/
@Entity
@Table(name = "one_2_one_master")
public class One2OnePKMaster {
@Id
@Column(name = "master_id")
@GenericGenerator(name = "uuid", strategy = "uuid")
@GeneratedValue(generator = "uuid")
private String masterId;

@OneToOne(cascade = CascadeType.ALL)
@JoinColumn(name = "master_id") //
private One2OnePKSilver silver;

public String getMasterId() {
return masterId;
}

public void setMasterId(String masterId) {
this.masterId = masterId;
}

public One2OnePKSilver getSilver() {
return silver;
}

public void setSilver(One2OnePKSilver silver) {
this.silver = silver;
}
}


@Entity
@Table(name = "one_2_one_silver")
public class One2OnePKSilver {
@Id
private String masterId;

@MapsId
@OneToOne(cascade = CascadeType.ALL)
@JoinColumn(name = "master_id")
private One2OnePKMaster master;

public String getMasterId() {
return masterId;
}

public void setMasterId(String masterId) {
this.masterId = masterId;
}

public One2OnePKMaster getMaster() {
return master;
}

public void setMaster(One2OnePKMaster master) {
this.master = master;
}
}


一对多关联注解

@Entity
@Table(name = "t_company")
public class Company {

@Id
@Column(name = "company_id")
@GenericGenerator(name = "uuid", strategy = "uuid")
@GeneratedValue(generator = "uuid")
private String companyId;

@Basic
@Column(name = "name")
private String name;

@OneToMany()
@JoinColumn(name = "company_id")//如果不定义注解,会自动生成关联表,并自动生成关联表中的两个字段名。
private List<Employee> employeeList;


@Entity
@Table(name = "t_employee")
public class Employee {
@Id
@Column(name = "employee_id")
@GenericGenerator(name = "uuid", strategy = "uuid")
@GeneratedValue(generator = "uuid")
private String employeeId;

@ManyToOne
@JoinColumn(name = "company_id")//如果不定义注解,会自动生成公司表名+公司表主键名称(company_company_id)
private Company company;


[b]多对多关联注解[/b]



@Entity
@Table(name = "t_student")
public class Student {
@Id
@Column(name = "student_id")
@GenericGenerator(name = "uuid", strategy = "uuid")
@GeneratedValue(generator = "uuid")
private String studentId;

@ManyToMany
@JoinTable(name = "t_teacher_student_rel",
inverseJoinColumns = {@JoinColumn(name = "teacher_id", referencedColumnName = "teacher_id")},
joinColumns= {@JoinColumn(name = "student_id", referencedColumnName ="student_id")})
private List<Teacher> teacherList;




@Entity
@Table(name = "t_teacher")
public class Teacher {
@Id
@Column(name = "teacher_id")
@GenericGenerator(name = "uuid", strategy = "uuid")
@GeneratedValue(generator = "uuid")
private String teacherId;

@Basic
@Column(name = "name")
private String name;

@ManyToMany()
@JoinTable(name = "t_teacher_student_rel",
joinColumns = {@JoinColumn(name = "teacher_id", referencedColumnName = "teacher_id")},
inverseJoinColumns = {@JoinColumn(name = "student_id", referencedColumnName ="student_id")})
private List<Student> studentList;




[b]一对多关联表关联注解

[/b]





@Entity
@Table(name = "v_shop")
public class Shop {
@Id
@Column(name = "shop_id")
@GenericGenerator(name = "uuid", strategy = "uuid")
@GeneratedValue(generator = "uuid")
private String shopId;

@Basic
@Column(name = "name")
private String name;

@OneToMany()
private List<Book> bookList;




@Entity
@Table(name = "v_book")
public class Book {
@Id
@Column(name = "book_id")
@GenericGenerator(name = "uuid", strategy = "uuid")
@GeneratedValue(generator = "uuid")
private String bookId;

@ManyToOne
@JoinTable(name = "v_shop_book_rel",
joinColumns = @JoinColumn(name = "book_id", referencedColumnName = "book_id"),
inverseJoinColumns = @JoinColumn(name = "shop_id", referencedColumnName = "shop_id"))
private Shop shop;


一对一关联表关联注解

@Entity
@Table(name = "x_computer")
public class Computer {

@Id
@Column(name = "computer_id")
@GenericGenerator(name = "uuid", strategy = "uuid")
@GeneratedValue(generator = "uuid")
private String computerId;

@OneToOne
@JoinTable(name = "x_computer_cpu_rel",
inverseJoinColumns= @JoinColumn(name = "cpu_id", referencedColumnName = "cpu_id"),
joinColumns = @JoinColumn(name = "computer_id", referencedColumnName = "computer_id"))
private Cpu cpu;


@Entity
@Table(name = "x_cpu")
public class Cpu {

@Id
@Column(name = "cpu_id")
@GenericGenerator(name = "uuid",strategy = "uuid")
@GeneratedValue(generator = "uuid")
private String cpuId;

@OneToOne//(cascade = CascadeType.ALL)
@JoinTable(name = "x_computer_cpu_rel",
joinColumns = @JoinColumn(name = "cpu_id", referencedColumnName = "cpu_id"),
inverseJoinColumns = @JoinColumn(name = "computer_id", referencedColumnName = "computer_id"))
private Computer computer;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: