[TOC]
Hibernate的注解映射
1 基本映射
2 多对一单双向映射
3 一对多单双向映射
4 多对多双向映射
5 其他映射
基本映射
1 @Entity 定义在实体类处 Employee;
2 @Table(name=”employee”) 当实体类名与对应的数据库名不一致时定义;
3 @Id 主键
@column(name=”“) 当实体类主键定义与对应的数据库定义的不一致时使用;
@GeneratedValue(strategy=Generation.auto) 自增使用
4 @Beasic 普通属性映射 一般不设置
5 @Temproal (Temproal.DATE) 日期映射
6 @Trasient 与数据库中没有的数据映射关系
以员工和部门为例:
多对一单向关联注解映射
1 @ManyToOne
@JoinColumn(name=”dept_no”)
private Dept dept;
多对一双向关联注解映射
2 @ManyToOne
@JoinColumn(name=”dept_no”)
private Dept dept;
@OneToMany(targetEntity=Employee.class,mappedBy=”dept”)
private Set employee=new HashSet<>();
以学生和课程为例
多对多单向关联注解映射
3 @ many-to-many (targetEntity=Course.class)
@jointable(name=”student_course”,joincolumns=@joncolumn(name=”stu_id”),invverseColumns=@joincolumn=”cou_id”)
private Set courses=new HashSet<>();
多对多双向关联注解映射
4 @ many-to-many (targetEntity=Course.class)
@jointable(name=”student_course”,joincolumns=@joncolumn(name=”stu_id”),invverseColumns=@joincolumn=”cou_id”)
private Set courses=new HashSet<>();
@many-to-many(targetEntity=Student.class, mappedBy=”courses”)
以用户信息和员工为例
一对一外键单向关联注解映射
5 @one-to-one
@joinColumn (name=“user_id”)
一对一外键双向关联注解映射
6 @one-to-one
@joinColumn (name=“user_id”)
@one-to-one
@joinColumn(name=“user_id”)