Hibernate 4.3 注解映射
2016-05-14 12:39
369 查看
1.一对一主键关联注解
一对多关联注解
[b]多对多关联注解[/b]
[b]一对多关联表关联注解
[/b]
一对一关联表关联注解
/** * 主键关联两个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;
相关文章推荐
- Hive SQL的编译过程
- uva10652 Board Wrapping(凸包)
- 美国匿名议员:操控一个幼稚绵羊组成的国家太容易了
- [从头学声学] 第215节 音符的研究
- hdu 2087 剪花布条(KMP)
- What happened if i delete a pointer which was not allocated dynamically?
- 获取字符串的utf-16编码
- What happened if i delete a pointer which was not allocated dynamically?
- 第10、11周项目(2)-储存班长信息的学生类
- 理解环境变量
- 用递归方法求n!
- amazon 出栈 进栈 序列 题目
- 初次使用java进行web开发的一些问题
- YTU 3019 螺旋方阵
- 《TCP/IP详解》学习笔记-第22/23章 TCP坚持定时器,保活定时器
- 两招让你成为牛X的T型人才
- thinkphp中实现ajax异步处理数据(jquery)
- 悉数美剧《黑客军团》中的黑客工具
- HZAU 1002 Mine Sweeping Game
- Redis 客户端Jedis使用---连接池