hibernate外键对应设置

A. 多对一

a.1 新建Web project---many2one

hibernate外键对应设置_第1张图片

a.2 添加hibernate支持

hibernate外键对应设置_第2张图片

hibernate外键对应设置_第3张图片

hibernate外键对应设置_第4张图片

a.3 先进入DB Browser配置表中“一”的那一方。

hibernate外键对应设置_第5张图片 

hibernate外键对应设置_第6张图片

hibernate外键对应设置_第7张图片

hibernate外键对应设置_第8张图片

a.4 配置“多”的那一方,其它的一样,最后一步:打倒数第二个勾。

hibernate外键对应设置_第9张图片

a.5 建立一个测试类测试一下。

package com.yenange.dao; 
import org.hibernate.Session; 
import com.yenange.entity.JD;

public class JDDao { 
    public static void main(String[] args) { 
        Session session =util.HibernateSessionFactory.getSession(); 
        JD jd=(JD)session.get(JD.class, 2); 
        System.out.println(jd.getJd()); 
        System.out.println(jd.getTblQx().getQx()); 
    } 
}

至此,全部完成。

总结:其实很简单。1、把“一”按最普通的方式反转;2、把“多”按普通方式反转,最后一步倒数第二个勾上就好。

 

B. 一对多

b1. 新建项目

hibernate外键对应设置_第10张图片

b2. 添加hibernate支持

hibernate外键对应设置_第11张图片

添加过程与“一对多”相同,都是指定了一个util包,不再赘述。添加后的项目如下:

hibernate外键对应设置_第12张图片

b3. 把“多”先按最普通的方式建好。

hibernate外键对应设置_第13张图片

hibernate外键对应设置_第14张图片

hibernate外键对应设置_第15张图片

b4. “一”前面基本上是普通的,仅最后一步,最下面的勾打上就好了。

hibernate外键对应设置_第16张图片

b5. 做一个测试类试一下.

package com.yenange.dao; 
import java.util.Set; 
import org.hibernate.Session; 
import com.yenange.entity.JD; 
import com.yenange.entity.QX;

public class Test { 
    public static void main(String[] args) { 
        Session session =util.HibernateSessionFactory.getSession(); 
        QX qx=(QX)session.get(QX.class, 1); 
        System.out.println(qx.getQx()); 
        Set<JD> set=qx.getTblJds(); 
        System.out.println("总数:"+set.size()); 
        for (JD jd : set) { 
            System.out.println(jd.getJd()); 
        } 
    } 
}

至此,全部完成。

总结:其实很简单。1、把“多”按最普通的方式反转;2、把“一”按普通方式反转,最后一步倒数第一个勾上就好。

C. 双向一对多

c1. 建立项目,添加hibernate支持

hibernate外键对应设置_第17张图片

c2. 反转配置: 选中两个表

 

hibernate外键对应设置_第18张图片

c3. 最后一步。最下面的两个勾要打上。两个表分别配一下,仅Class name不同而已。

hibernate外键对应设置_第19张图片

c4. 复制一个BaseHibernateDAO类过来。项目情况:

hibernate外键对应设置_第20张图片

新建一个区县的DAO

hibernate外键对应设置_第21张图片

c5. 做一个测试类:

package com.yenange.dao; 
import com.yenange.entity.JD; 
import com.yenange.entity.QX;

public class QXDAO extends BaseHibernateDAO { 
    public static void main(String[] args) { 
        QX qx=new QX(); 
        qx.setQx("海珠区"); 
        QXDAO dao=new QXDAO(); 
        dao.add(qx); 
        QX qx2=(QX)dao.get(QX.class, 22); 
        JD jd=new JD(); 
        jd.setJd("新港西路"); 
        jd.setTblQx(qx2); 
        dao.add(jd); 
    } 
}

c6. 对于删除等可能涉及到外键的:

1、区县(“一”)的那一方的映射文件:

<set name="tblJds" inverse="true" cascade="all">

 

2. 测试文件添加代码:

dao.delete(QX.class, 22);//成功!!

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

D 多对多

d1. 创建项目

hibernate外键对应设置_第22张图片

d2. 选中两张表, 进行反转

hibernate外键对应设置_第23张图片

hibernate外键对应设置_第24张图片

hibernate外键对应设置_第25张图片

hibernate外键对应设置_第26张图片

说实在的,感觉最后一个应该是Hibernate比代码生成器更强大的地方,可惜没有讲完。有空再研究吧!

你可能感兴趣的:(hibernate外键对应设置)