hibernate对象关系映射配置

来源:互联网 发布:putty向串口发送数据 编辑:程序博客网 时间:2024/05/16 09:41

一、类影射

<class

         name="com.gdlinkway.hibernate.学生" //类名

         table="学生"                             //数据库表名

         schema="SCOTT"                     //数据库用户

         dynamic-update="true"              //动态生成Update SQL语句只Update被修改的字段

         dynamic-insert="true"               //动态生成Insert SQL语句且只包含非空值得字段

         lazy="false"                   //设置此类的延迟加载策略。当此类在“一”端时,

                                                          //True=延迟否则立即(默认)

         select-before-update="true"      //在update SQL执行之前先执行select检查是否确实被修改过,

                                                        //若确认被修改过才发送Update SQL否则不发送。

                                                          //从而提高效率

         polymorphism="implicit"           //设置多态属性:implicit隐性(默认)和expplicit,

                                                         //分别表示隐式多态和显式多态

         where="性别='男'"                   //查询限制的条件

>

       

二、主键的影射

主键值的生成方式:

1、assigned

        主键由程序员负责赋值,由程序员保证主键值的合法性,Hibernate无须参与。

2、hilo

        在数据库有表记录主键生成状态的前提下用hi/lo算法生成主键。

3、seqhilo

        与hilo类似,但是数据库必须支持Sqquence,如Oracle。

4、increment

        当前应用程序实例中维持一个主键最大值,每次生成后自动递增1。但是当存在多个应用实例时,会出错,不主张采用。

5、identity

        采用数据库提供的主键生成机制。如SqlServer、DB2、MySQL。

6、sequence

        采用数据库提供的sequence生成主键。如Oracle。

7、native

        由hibernate根据后台数据库的类型自动选择identity、hilo还是sequence。

8、uuid.hex

        由hibernate根据uuid算法自动生成128位全球唯一标识码。

9、uuid.string

        与uuid类似但是未进形编码。不主张采用。

10、foreign

        利用外部表的字段作主键,如一对一关系中的共享主键。

当数据库主键的值是由数据库自动产生时,在save实体类之前,无须执行 setID() 方法。

三、专用词介绍:

1、cascade(级联)

   级联在编程中经常接触,写过触发器来修改或删除关联表相记录的一定会知道,触   发器的作用是当 主控表信息改变时,用来保证其关联表中数据同步更新。比如一个 employee

2、inverse(反转)

表与表之间的关联,我们通常将主动发起关联请求的表称为主动表,被关联的表成为被动表,hibernate中 将此概念冠以在表所对应的对象上,因此将主动发起关联请求的对象称为主动对象或主控对象,被关联的对象 称为被动对象或被控对象。hibernate由主动对象维护关联关系,在实际中经常碰到一个对象的关联角色并不 那么明确,如双向关联,这时inverse值用来标明由谁来维护关联关系。设为true时反转控制角色,即由该 属性关联的对象维护关联关系。

3、 Lazy Loading(延时装载)

延时装载主要是从性能方面的考虑,对于 “select coulmn1 from table”和“select * from table”语句 的性能比较,相信大家不会有异议,第一条的执行性能要高于第二条,当然这个表中字段存储的信息应该能充分 体现出优越性为前提,比如说一个employee表中存放有,职员姓名、年龄、照片等,如果只需要查看姓名和年龄, 那么照片信息就不应该附带出来。表与表之间的关联也应如此,如果不需要用到关联表中的数据就不应该去进行关 联操作,或在需要的时候才启动关联操作。让数据在最恰当的时候才出现,这就是延时装载

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 dnf深渊宝珠出了怎么办 吞噬魔4个球吃了怎么办 dnf没有支援兵了怎么办 家里没通天然气怎么办 苹果6p16g不够用怎么办 魅蓝手机内存不够用怎么办 3dmax灯光全黑怎么办 高压15o低压1oo怎么办 源码一位乘法中c怎么办 怀孕搬了重东西怎么办 深蹲力量不涨怎么办 ps4连接显示器分辨率低怎么办 大疆失去链接后怎么办 脑袋被锤了几拳怎么办 华为手机变板砖怎么办 电脑网页打开很慢怎么办 网页加载速度太慢.怎么办 cad字显示不出来怎么办 dell笔记本打不开机怎么办 手机系统界面已停止运行怎么办 大石退出菊丸怎么办 word空白页面突然变大了怎么办 高速上车胎爆了怎么办 没有定速巡航跑长途怎么办 惠普笔记本驱动无法安装怎么办 狙击手遇到热追踪导弹怎么办 做完卷腹脖子疼怎么办 医疗设备销售遭遇瓶颈怎么办 给顾客加油加超了怎么办 卡密码输错两次怎么办 擤鼻涕耳朵会响怎么办 鼻子里有血丝是怎么办 怀孕8周上火了怎么办 鼻炎犯了鼻涕流不停怎么办 擤鼻涕眼睛肿了怎么办 感冒咳嗽鼻子不通气怎么办 宝宝感冒不会擤鼻涕怎么办 新生儿鼻腔里有鼻涕怎么办 宝宝鼻腔有鼻涕出不来怎么办 怀孕的人感冒了怎么办 孕37周感冒咳嗽怎么办