我们在使用Hibernate框架的时候,非常纠结的地方就是实体和表之间的映射,今天借助汤老师的思路写了小教程,以后配置不用纠结了!

 

第一步:写注释

  格式为:?属性,表达的是本对象与?的?关系。
  例:“department属性,本对象与Department的多对一”

第二步:拷模板

  Hibernate实体映射配置(XML)简单三步完美配置

第三步:填空:

  name属性:属性名(注释中的第1问号)
  class属性:关联的实体类型(注释中的第2个问号)
  column属性:
    <many-to-one column="..">:一般可以写成属性名加Id后缀,如属性为department,则column值写成departmentId。
    一对多中的<key column="..">:从关联的对方(对方是多对一)映射中把column值拷贝过来。
    多对多中的<key column=“..”>:一般可以写成本对象的名加Id后缀,如本对象名为User,则写为userId。
    多对多中的<many-to-many column=“..”>:一般可以写为关联对象的名称加Id后缀。

 

应用实例:

  用户、角色、部门之间的关系映射

  用户: ID 、名称

  角色:ID、角色名、描述

  部门:ID、部门名

  关系:

    用户和角色是多对多关系,用户和部门是多对一关系,部门自关联是多对一/一对多关系

  测试代码:

    实体类:(写实体类时候一定不要忘记给每个属性添加setter、getter方法,否则创建不了sessionFactory等对象

     User.java

 1 package com.qcf.po;
 2 
 3 import java.util.HashSet;
 4 import java.util.Set;
 5 
 6 public class Depart {
 7     
 8     private int id;
 9     private String name;
10     //用户
11     Set<User> users=new HashSet<User>();
12     
13     //子类部门
14     Set<Depart> departs=new HashSet<Depart>();
15 
16     //父类部门
17     private Depart depart;
18     
19     
20     public Set<User> getUsers() {
21         return users;
22     }
23     public void setUsers(Set<User> users) {
24         this.users = users;
25     }
26     public Set<Depart> getDeparts() {
27         return departs;
28     }
29     public void setDeparts(Set<Depart> departs) {
30         this.departs = departs;
31     }
32     public Depart getDepart() {
33         return depart;
34     }
35     public void setDepart(Depart depart) {
36         this.depart = depart;
37     }
38     public int getId() {
39         return id;
40     }
41     public void setId(int id) {
42         this.id = id;
43     }
44     public String getName() {
45         return name;
46     }
47     public void setName(String name) {
48         this.name = name;
49     }
50     public Depart(int id, String name) {
51         super();
52         this.id = id;
53         this.name = name;
54     }
55     public Depart() {
56         super();
57     }
58     
59 
60 }
View Code

相关文章:

  • 2022-12-23
  • 2021-07-18
  • 2021-11-11
  • 2022-12-23
  • 2021-11-11
  • 2022-12-23
  • 2022-12-23
  • 2022-01-01
猜你喜欢
  • 2022-03-02
  • 2021-08-23
  • 2021-11-11
  • 2022-12-23
  • 2022-12-23
  • 2021-10-02
  • 2021-05-26
相关资源
相似解决方案