知识大全 hibernate关系映射
Posted 属性
篇首语:历史和哲学负有多种永恒的责任,同时也是简单的责任。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 hibernate关系映射相关的知识,希望对你有一定的参考价值。
一 对象 关系 映射基础
对象间的基本关系
首先我简要阐明一下对象之间的基本关系 在这以后UML的课程中也会深入的学习 对象具有的四种基本关系
关联关系 关联关系在设计模式中是被提倡优先使用于继承关系的 关联关系就是将一个对象做为别一个对象的成员 是一种包含的关系
依赖关系 对与对象之间的方法的调用 不存在包含的关系
聚集关系 这个关系比较有趣 比如人的手和身体 如果身体不存在了 手也就不存在了 是一种整个与部分的关系
一般关系 就是继承关系
上边的这四种关系是对前一天的补充 对象 关系的映射基础没有涉及这些 而是单一对象通过hibernate与数据库的映射关系
持久化类的属性及访问方法
首先回顾一下持久化 我们知道持久化层是从业务逻辑层中分离出来的专门用于数据库操作的这些部分 持久化层中的持久化类 便是我们之前早已学习的domain类
) 持久化类的访问者有两个 一是JAVA应用程序 二是hibernate
写 Java应用程序通过setter设置持久化对象的属性 hibernate通过getter获取持久化对象的属性并生成相应的SQL语句对表格进行操作
读 hibernate通过setter设置持久化对象的属性 Java应用程序通过getter获取持久化对象的属性
) 基本数据类型和包装类型
通过前天的日志 我们知道关联对象的属性与表格的字段是通过property元素节点设置的
<property name= gender column= gender type= integer />
基本的type是hibernate的类型 我们在持久化类中定义的gender属性为int 定义为int类型会有什么弊端?比如 我们有个学生成绩表 如果某个学生没有参加某一学科的考试 但我们却使用了int类型 它的默认值为 当查看学生成绩时 他到底是考了 分还是没有考试?所以最好将持久化类中的gender属性定义为Integer 它的默认值为null 查询成绩时看到的是null 那么他肯定是没参加考试哦!(注意 数据库中的对应字段应该为字符型)
) hibernate访问持久化类属性的策略
Hibernate通过name指定的值访问持久化对象 Hibernate通过name值 反射持久化对象的对方法 比如 name的值为gender Hibernate会直接反射持久化对象的getGender和setGender方法 所以我们必须保证持久化对象中有对应的方法 这是因为property有一个access属性 它的默认值为property
如果指定access的值为field 则hibernate直接根据name值反射持久化对象的属性 此时 我们必须保证持久化对象中有对应的属性
) 在持久化类的方法中加入程序逻辑
通过 )我们知道 如果access的值为property hibernate直接反射持久化对象的方法 在这个方法中我们就可以加入程序逻辑 老徐举了一个生动的例子 比如Customer类中有firstname和lastname两个属性 但我们只想让hibernate通过getName方法获得一个firstname+lastname的字符串 此时我们就可以在getName方法中将firstname与lastname两个属性值合并为一个中间使用 连接的字符串返回
使用hibernate获取数据表中的数据时 hibernate会调用持久化对象的setName方法 我们在这个方法中将传递进来的参数使用 分隔 然后分别设置到firestname和lastname属性中
) hibernate的hql语句
我们在使用JDBC DBUtil时使用的都是SQL语句 但hibernate比较特殊 它使用的是自己的一套东西叫hql语句 比如我们调用session find方法 传递的hql语句为
from customer as c where c name= itcast
其中的customer指向持久化对象的映射文件 name指向持久化对象的映射文件中的property元素的name属性 此时需要注意access属性的值
) 设置派生属性
Property元素中 有一个formula属性 它的值是一个sql表达式 hibernate将根据此表达式计算的值设置到持久化对象的属性上 比如 我们要统计订单表中的总计
cha138/Article/program/Java/ky/201311/28866相关参考
精通Hibernate之映射继承关系八 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 由于关系数
精通Hibernate之映射继承关系(二) 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 把每个
精通Hibernate之映射继承关系(一) 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 在域模
精通Hibernate之映射继承关系三 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! <h
HibernateORM对象-关系映射 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! Hiber
精通Hibernate之映射继承关系二(图) 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 把每
精通Hibernate之映射继承关系四(图) 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 这种
精通Hibernate之映射继承关系七(图) 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! Co
Hibernate如何映射枚举类型 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 问题 Jav
Hibernate的基本标签和映射 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! hiberna