Hibernate一对多双向,多对多双向,排序

来源:互联网 发布:淘宝卖家关闭佣金 编辑:程序博客网 时间:2024/05/29 16:00

一对多双向

<?xml version="1.0"?><!DOCTYPE hibernate-mapping PUBLIC        "-//Hibernate/Hibernate Mapping DTD 3.0//EN"        "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd"><hibernate-mapping package="cn.happy.hb03mapping.onetomanydouble">    <class name="Dept" table="Dept" schema="zyz">        <id name="deptno" column="deptno">            <generator class="native"></generator>        </id>        <property name="deptname" />        <!--植入一个set标签-->        <set name="emps" cascade="save-update">            <!--多的一方表的外键列-->            <key column="deptno"></key>            <one-to-many class="Emp"></one-to-many>        </set>    </class></hibernate-mapping>

<?xml version="1.0"?><!DOCTYPE hibernate-mapping PUBLIC        "-//Hibernate/Hibernate Mapping DTD 3.0//EN"        "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd"><hibernate-mapping package="cn.happy.hb03mapping.onetomanydouble">    <class name="Emp" table="Emp" schema="zyz">        <id name="empno" column="empno">           <generator class="native"></generator>        </id>        <property name="empname" />        <many-to-one  name="dept" column="deptno" class="Dept"></many-to-one>    </class></hibernate-mapping>

@Testpublic void testOneToManyDouble(){    Configuration cfg=new Configuration().configure();    SessionFactory factory=cfg.buildSessionFactory();    Session session=factory.openSession();    List<Dept> list=session.createQuery("from Dept").list();    for(Dept dept:list){        System.out.println(dept.getDeptname());        System.out.println("=====================");        for(Emp emp:dept.getEmps()){            System.out.println(emp.getEmpname());        }    }}




排序

<?xml version="1.0"?><!DOCTYPE hibernate-mapping PUBLIC        "-//Hibernate/Hibernate Mapping DTD 3.0//EN"        "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd"><hibernate-mapping package="cn.happy.hb03mapping.onetomanydouble">    <class name="Dept" table="Dept" schema="zyz">        <id name="deptno" column="deptno">            <generator class="native"></generator>        </id>        <property name="deptname" />        <!--植入一个set标签-->        <set name="emps" cascade="save-update" inverse="true" order-by="empname desc">            <!--多的一方表的外键列-->            <key column="deptno"></key>            <one-to-many class="Emp"></one-to-many>        </set>    </class></hibernate-mapping>

<?xml version="1.0"?><!DOCTYPE hibernate-mapping PUBLIC        "-//Hibernate/Hibernate Mapping DTD 3.0//EN"        "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd"><hibernate-mapping package="cn.happy.hb03mapping.onetomanydouble">    <class name="Emp" table="Emp" schema="zyz">        <id name="empno" column="empno">           <generator class="native"></generator>        </id>        <property name="empname" />        <many-to-one  name="dept" column="deptno" class="Dept"></many-to-one>    </class></hibernate-mapping>

@Testpublic void orderby(){    Configuration cfg=new Configuration().configure();    SessionFactory factory=cfg.buildSessionFactory();    Session session=factory.openSession();    Dept dept=session.get(Dept.class,10);    for (Emp emp:dept.getEmps()){        System.out.println(emp.getEmpname());    }}





多对多双向


<?xml version="1.0"?><!DOCTYPE hibernate-mapping PUBLIC        "-//Hibernate/Hibernate Mapping DTD 3.0//EN"        "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd"><hibernate-mapping package="cn.happy.hb03mapping.manytomany">    <class name="Employee" table="Employee" schema="zyz">        <id name="empid" column="empno">           <generator class="native"></generator>        </id>        <property name="ename" />        <!--table指的是中间表-->        <set name="projects" table="PROEMP" inverse="true">            <key column="REMPID"></key>            <many-to-many column="RPROID" class="Project"></many-to-many>        </set>    </class></hibernate-mapping>

<?xml version="1.0"?><!DOCTYPE hibernate-mapping PUBLIC        "-//Hibernate/Hibernate Mapping DTD 3.0//EN"        "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd"><hibernate-mapping package="cn.happy.hb03mapping.manytomany">    <class name="Project" table="Project" schema="zyz">        <id name="proid" column="proid">           <generator class="native"></generator>        </id>        <property name="proname" />    </class></hibernate-mapping>

@Testpublic void testPrintEmp(){    Configuration cfg=new Configuration().configure();    SessionFactory factory=cfg.buildSessionFactory();    Session session=factory.openSession();    Employee employee = session.get(Employee.class, 7369);    System.out.println(employee.getEname());    System.out.println("==================");    for (Project project:employee.getProjects()){        System.out.println(project.getProname());    }}
原创粉丝点击