java Hibernate延迟加载

2016-02-19 11:40 3 1 收藏

今天图老师小编给大家展示的是java Hibernate延迟加载,精心挑选的内容希望大家多多支持、多多分享,喜欢就赶紧get哦!

【 tulaoshi.com - 编程语言 】

示例数据表:team(班级)、certificate(身份证)、student(学生)

Team.hbm.xml
?xml version="1.0" encoding="utf-8"?
!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"
!--
    Mapping file autogenerated by MyEclipse Persistence Tools
--
hibernate-mapping
    class name="edu.dgut.ke.model.Team" table="TEAM" lazy ="true" !-- 多对一的延迟加载设置 --
        id name="id" type="java.lang.String"
            column name="ID" length="32" /
            generator class="uuid.hex" /
        /id
        property name="teamname" type="java.lang.String"
            column name="TEAMNAME" length="32" not-null="true" unique="true" /
        /property
        set name="students" inverse="true" cascade="all" lazy="true" !-- 一对多的延迟加载设置 --
            key
                column name="TEAMID" length="32" not-null="true" /
            /key
            one-to-many class="edu.dgut.ke.model.Student" /
        /set
    /class
/hibernate-mapping

Certificate.hbm.xml
?xml version="1.0" encoding="utf-8"?
!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"
!--
    Mapping file autogenerated by MyEclipse Persistence Tools
--
hibernate-mapping
    class name="edu.dgut.ke.model.Certificate" table="CERTIFICATE" lazy="true" !-- 一对一的延迟加载设置 --

        id name="id" type="java.lang.String"
            column name="ID" length="32" /
            generator class="uuid"

            /generator
        /id
        property name="describe" type="java.lang.String"
            column name="`DESCRIBE`" length="50" not-null="true" /
        /property
        one-to-one name="student"
        class="edu.dgut.ke.model.Student"
         constrained="true" !-- 一对一的延迟加载设置 --

        /one-to-one
    /class
/hibernate-mapping

Student.hbm.xml
?xml version="1.0" encoding="utf-8"?
!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"
!--
    Mapping file autogenerated by MyEclipse Persistence Tools
--
hibernate-mapping
    class name="edu.dgut.ke.model.Student" table="STUDENT" lazy="true"
        id name="id" type="java.lang.String"
            column name="ID" length="32" /
            generator class="uuid.hex" /
        /id
        many-to-one name="certificate"
        class="edu.dgut.ke.model.Certificate"
        unique="true"
        column="cardId"
        cascade="all"
       
        /many-to-one
        many-to-one name="team" class="edu.dgut.ke.model.Team"
            column name="TEAMID" length="32" not-null="true" /
        /many-to-one
        property name="studentname" type="java.lang.String"
            column name="STUDENTNAME" length="16" not-null="true" unique="true" /
        /property
    /class
/hibernate-mapping
注意:对one-to-one 关系进行延迟加载和其他关系相比稍微有些不同。many-to-one 的延迟加载是在配置文件的class 标签
上设置 lazy="true" ,one-to-many 和 many-to-many 的延迟加载是在 set 标签中设置lazy="true"。而one-to-one 不只要在 classs
标签设置 lazy="true",而且要在one-to-one 标签中设置constrained="true" 。
如果不设置constrained="true",则一对一查询使用默认的预先抓取策略(fetch="join")。

来源:https://www.tulaoshi.com/n/20160219/1598140.html

延伸阅读
lazy懒加载(延迟加载)UITableView 举个例子,当我们在用网易新闻App时,看着那么多的新闻,并不是所有的都是我们感兴趣的,有的时候我们只是很快的滑过,想要快速的略过不喜欢的内容,但是只要滑动经过了,图片就开始加载了,这样用户体验就不太好,而且浪费内存.              这个时候...
如今,Hibernate正在迅速成为非常流行的(如果不是最流行的)J2EE O/R映射程序/数据集成框架。它为开发人员提供了处理企业中的关系数据库的整洁、简明且强大的工具。但如果外部需要访问这些已被包装在J2EE Web应用程序中的实体又该怎么办?是开发独立但相同的实体来访问数据,还是另外编写Web组件来管理内部访问的数据? 在某种程度...
Hibernate简介 Hibernate寓意:Let Java objects hibernate in the relational database. Hibernate 是Java应用和关系数据库之间的桥梁,负责Java对象和关系数据库之间的映射的ORM中间件。Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Ja...
标签: Web开发
效果可以直接看淘宝的商品分类页、还有QQ的商城页 相关地址: 淘宝商城显示   大家如果使用firebug去查看的话就会发现,当你滚动到相应的行时,当前行的图片才即时加载的,这样子的话页面在打开只加可视区域的图片,而其它隐藏的图片则不加载,一定程序上加快了页面加载的速度,对于比较长的页面来说,这个方案是比较好的。  ...
Hibernate 一对多自身关联问题  这个很难描述清楚,只能引用CSDN中我提问的帖子了: http://topic.csdn.net/u/20080711/16/7494bf10-48ca-4b2e-8a01-303e647f5516.html 方法,在表单中取得一个PO,然后session.save(po),如下:   程序代码            &n...

经验教程

557

收藏

29
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部