第十章 基于Annotation的关系映射 多对一与一对多
2013-06-09 21:02
459 查看
如果下面部分内容有不明白的可以查找:
基于Annotation的关系映射 前期准备:http://blog.csdn.net/p_3er/article/details/9061911
基于xml的多对一:http://blog.csdn.net/p_3er/article/details/9036759
基于xml的一对多:http://blog.csdn.net/p_3er/article/details/9036921
本文是把多对一与一对多结合起来了,形成一个双向的映射。如果只想要单向的话,把别外一边的注解去掉就是了。
Department:
Employee:
基于Annotation的关系映射 前期准备:http://blog.csdn.net/p_3er/article/details/9061911
基于xml的多对一:http://blog.csdn.net/p_3er/article/details/9036759
基于xml的一对多:http://blog.csdn.net/p_3er/article/details/9036921
本文是把多对一与一对多结合起来了,形成一个双向的映射。如果只想要单向的话,把别外一边的注解去掉就是了。
Department:
@Entity @Table(name = "department", catalog = "hibernate") public class Department implements java.io.Serializable { private Integer id; private String name; private Set<Employee> employees = new HashSet<Employee>(0); public Department() { } public Department(String name, Set<Employee> employees) { this.name = name; this.employees = employees; } @Id @GeneratedValue @Column(name = "id", unique = true, nullable = false) public Integer getId() { return this.id; } public void setId(Integer id) { this.id = id; } @Column(name = "name", nullable = false, length = 45) public String getName() { return this.name; } public void setName(String name) { this.name = name; } @OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "department") /* 一对多。 department和employee的一对多关系中,当指定department中的mappedBy后,关系只能被employee来主动维护.也就是employee级联的处理department. 之前的映射文件: <set name="employees" inverse="false" cascade="all"> <key column="department_id"></key> <one-to-many class="cn.framelife.hibernate.entity.Employee"/> </set> */ public Set<Employee> getEmployees() { return this.employees; } public void setEmployees(Set<Employee> employees) { this.employees = employees; } }
Employee:
@Entity @Table(name = "employee", catalog = "hibernate") public class Employee implements java.io.Serializable { private Integer id; private Department department; private String name; public Employee() { } @Id @GeneratedValue @Column(name = "id", unique = true, nullable = false) public Integer getId() { return this.id; } public void setId(Integer id) { this.id = id; } @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "department_id") /* 多对一。 <many-to-one name="department" column="department_id"></many-to-one> */ public Department getDepartment() { return this.department; } public void setDepartment(Department department) { this.department = department; } @Column(name = "name", nullable = false, length = 45) public String getName() { return this.name; } public void setName(String name) { this.name = name; } }
相关文章推荐
- 第十章 基于Annotation的关系映射 多对多
- 第十章 基于Annotation的关系映射 一对一
- 第十章 基于Annotation的关系映射 前期准备
- 第十章 基于Annotation的关系映射 一对一
- 第十章 基于Annotation的关系映射 多对一与一对多
- 第十章 基于Annotation的关系映射 多对多
- Hibernate中,One2Many和Many2One的双向映射关系的基于注解Annotation实现方式
- Hibernate基于主键的一对一映射关系
- annotation 与xml 多表映射关系
- 基于Castle ActiveRecord开发Domain Model详解(一)对象关系到数据表的映射
- 整理笔记---Hibernate的xml与Annotation配置映射关系
- Hibernate 关系映射(一)基于外键关联的N:1
- 【hibernate框架】关系映射之一对一单项外键关联(Annotation实现)
- Hibernate -- 注解(Annotation)关系映射
- @ManyToMany- annotation关系映射篇(下)
- Hibernate关系映射(六)多对多单向关联@ManyToMany Annotation方式
- Hibernate_基于Annotation的使用_OneToOne_Demo(不维护关系那方(mappedBy="person"))
- Hibernate Annotation关系映射, 级联cascade属性
- Hibernate学习笔记 3 - 关系映射配置(基于注解)
- Hibernate实体关系映射—Annotation