hibernate实体类注解 偏执的太偏执、 2022-05-27 07:12 153阅读 0赞 ## 实体类可以分为四部分 ## ### 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关闭放在请求外面
还没有评论,来说两句吧...