Hibernate3实体映射

Hibernate3实体映射

ID:39328209

大小:1.18 MB

页数:27页

时间:2019-06-30

Hibernate3实体映射_第1页
Hibernate3实体映射_第2页
Hibernate3实体映射_第3页
Hibernate3实体映射_第4页
Hibernate3实体映射_第5页
资源描述:

《Hibernate3实体映射》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、Hibernate实体映射映射对象标识符映射字段类型映射关联关系本章目标自然主键在关系数据库表中,主键用来标识记录并保证每条记录唯一性,主键字段必须满足以下条件不允许有null每条记录具有唯一的主键值每条记录的主键值永远不变把数据库表中具有业务含义的主键字段称为自然主键,比如:用户名身份证号码订单编号代理主键自然主键不能满足不断变化的业务需求,一旦业务需求变化,就必须修改数据模型重新定义表的主键,给数据库的维护增加了难度因此,在数据库设计时引入了代理主键,代理主键不具备任何的业务含义,一般为整数,因为

2、整数比字符串节省存储空间:SQLServer和MySQL中的自动增长类型Oracle和DB2中的序列(Sequence)Hibernate几种内置的标识符生成器Hibernate内置标识符increment:由Hibernate负责主键递增(查询最大id值之后加1,要多查询一次数据库,并且并发访问会出错)identity:采用数据库自增主键生成机制,如SQLServer、MySQL,但是Oracle等不支持sequence:采用数据库提供的sequence生成机制,如Oracle、DB2,但是SQLS

3、erver、MySQL不支持hilo:需要额外数据库表保存主键生成历史状态uuid:由hibernate基于唯一值算法生成表示一个128位的值(32个字符),最大的保证唯一性,可能数万年才出现一次重复,可以在不同数据库之间移植native:由hibernate自动判断数据库类型而采用不同的生成机制,选择使用identity,sequence,hilo标识生成器assigned:由应用程序负责生成主键,不能把setId()的方法设置成private如果把

4、to”>设置为validate,对于native和sequence需要先建一个名为HIBERNATE_SEQUENCE的Sequence(Oracle)UUIDUUID(UniversallyUnique Identifier)全局唯一标识符,是指在一台机器上生成的数字,它保证对在同一时空中的所有机器都是唯一的。按照开放软件基金会(OSF)制定的标准计算,用到了以太网卡地址、纳秒级时间、芯片ID码和许多可能的数字。由以下几部分的组合:当前日期和时间(UUID的第一个部分与时间有关,如果你在生成一个UU

5、ID之后,过几秒又生成一个UUID,则第一个部分不同,其余相同),时钟序列,全局唯一的IEEE机器识别号(如果有网卡,从网卡获得,没有网卡以其他方式获得),UUID的唯一缺陷在于生成的结果串会比较长。在Java中生成UUID的方式(java.util.UUID类)Stringuuid=UUID.randomUUID().toString();class元素的配置name:POJO实体类名table:映射的表名,如果省略,默认和实体类名一致dynamic-insert:true/false,如果为tru

6、e,根据实体类的值,生成SQL,如果实体类中有空字段,相应的字段不生成insert语句中dynamic-update:true/false,如果为true,根据实体类的值,生成SQL,如果实体类中有空字段,相应的字段不生成update语句中lazy:是否延迟加载,true为延迟加载,false为立即加载,默认为trueid元素的配置name:POJO实体类属性名,以小写字母开头column:对应数据库的字段名,如果省略,默认为实体类的属性名type:映射类型,可选Hibernate基本类型:integ

7、er,float,string,character,timestamp,date等Java基本类型:int,float,char,java.lang.String,java.util.Date等自定义类的类名access:可选,默认为property,表示Hibernate通过setXXX和getXXX方法来访问实体类属性,如果设置为field,表示直接访问实体类的属性property元素的配置name:POJO实体类属性名,以小写字母开头column:对应数据库的字段名,如果省略,默认为实体类的属性

8、名type:映射类型,可选Hibernate基本类型:integer,float,string,character,timestamp,date等Java基本类型:int,float,char,java.lang.String,java.util.Date等自定义类的类名update:true/false,表明insert的SQL语句中是否包含这个字段Insert:true/false,表明update的SQL语句中是否包含这个字段access:可选,默

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。