hibernate实体类注解

实体类可以分为四部分

1.申明映射的表

//注解这是一个实体类文件
@Entity
//这个类映射到表,表名为dept
@Table(name="dept")
public class Dept implements Serializable

2.主键

//申明这是id主键
@Id
//对应数据库的deptno列
@Column(name="deptno")
//主键生成策略,策略名是myGen,策略是increment
@GenericGenerator(name="myGen",strategy="increment")
//主键策略使用myGen
@GeneratedValue(generator="myGen")
public Integer getDeptno() {
    return deptno;
}

3.其他字段

//对应数据库的dname列
@Column(name="dname")
public String getDname() {
    return dname;
}
//对应数据库的loc列
@Column(name="loc")
public String getLoc() {
    return loc;
}

4.特殊字段(一对多,多对一,多对多)

一对多

//mappedBy:多中对象名        fetch:是否开启懒加载       targetEntity:对应的实体类
@OneToMany(mappedBy="dept",fetch=FetchType.LAZY,targetEntity=Emp.class)
public List<Emp> getEmpList() {
    return empList;
}

多对一

//fetch:是否开启懒加载 targetEntity:一方类名
@ManyToOne(fetch=FetchType.LAZY,targetEntity=Dept.class)
//joincolumn:表中外键名
@JoinColumn(name="deptno")
public Dept getDept() {
    return dept;
}

多对多

//fetch:是否懒加载
@ManyToMany(fetch=FetchType.LAZY)
//JoinTable(name:第三方表名,joinColumns={@JoinColumn(name=本表对应第三方表的键)},inverseJoinColumns={@JoinColumn=(name=对方表对应第三方表的键)})
@JoinTable(name="my_u_r",joinColumns={@JoinColumn(name="u_id")},inverseJoinColumns={@JoinColumn(name="r_id")})
public Set<Role> getRoles() {
    return roles;
}

注意:

        一旦开启懒加载就要配置OpenSessionInViewFilter这个文件把session关闭放在请求外面

猜你喜欢

转载自blog.csdn.net/young_____hu/article/details/79931260