hibernate映射文件及详解.docVIP

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
hibernate映射文件及详解

hibernate映射文件的详解 chende 2009-3-4 1: 操作级联(cascade)关系cascade=none/all/save or update/delete all : 所有情况下均进行级联操作。 none:所有情况下均不进行级联操作。 save-update:在执行save-update时进行级联操作。 delete:在执行delete时进行级联操作。 级联(cascade)在Hibernate映射关系中是个非常重要的概念。它指的是当主控方执行操作时,关联对象(被动方)是否同步执行同一操作。如对主控对象调用save-update或delete方法时,是否同时对关联对象(被动方)进行Text Nsave-update或delete。例如,当用户(TUser)被更新或者删除时,其所关联的组(TGroup)不应被修改或者删除,因此,级联关系设置为none。当设为all时,一旦删除了一个TGroup,所有在这个TGroup内的用户都会被删除。 2: <hibernate-mapping schema=schemaName default-cascade=none auto-import=true package=test> default-access=property Hibernate用来访问属性的策略。可以通过实现PropertyAccessor接口 自定义。默认为property 可取值为field\noop default-lazy (可选 - 默认为 true): 指定了未明确注明lazy属性的Java属性和集合类, Hibernate会采取什么样的默认加载风格。 schema属性指明了这个映射的表所在的schema名称。 default-cascade属性指定了默认的级联风格 可取值有 none、save、update。默认为none auto-import属性默认让我们在查询语言中可以使用非全限定名的类名 可取值有 true、false。package属性指定一个包前缀。 3. unsaved-value (可选 - 默认为一个字段判断(sensible)的值): 一个特定的标识属性值,用来标志该实例是刚刚创建的,尚未保存。 这可以把这种实例和从以前的session中装载过(可能又做过修改--译者注) 但未再次持久化的实例区分开来。如果有就执行save,没有就执行update,hibernate的主键策略就是这样的原理 4. 关键说一下:Key Generator 主键产生器 可选项说明: 1) Assigned 主键由外部程序负责生成,无需Hibernate参与。 2) hilo 通过hi/lo 算法实现的主键生成机制,需要额外的数据库表保存主键生成历史状态。 3) seqhilo 与hilo 类似,通过hi/lo 算法实现的主键生成机制,只是主键历史 状态保存在Sequence中,适用于支持Sequence的数据库,如Oracle。 4) increment 主键按数值顺序递增。此方式的实现机制为在当前应用实例中维持 一个变量,以保存着当前的最大值,之后每次需要生成主键的时候 将此值加1作为主键。 这种方式可能产生的问题是:如果当前有多个实例访问同一个数据 库,那么由于各个实例各自维护主键状态,不同实例可能生成同样 的主键,从而造成主键重复异常。因此,如果同一数据库有多个实 例访问,此方式必须避免使用。 5) identity 采用数据库提供的主键生成机制。如DB2、SQL Server、MySQL中的主键生成机制。 6) sequence 采用数据库提供的sequence 机制生成主键。如Oralce 中的Sequence。 7) native 由Hibernate根据底层数据库(就是方言)自行判断采用identity、hilo、sequence 其中一种作为主键生成方式。 8) uuid.hex 由Hibernate基于128 位唯一值产生算法生成16 进制数值(编码后 以长度32 的字符串表示)作为主键。 9) uuid.string 与uuid.hex类似,只是生成的主键未进行编码(长度16)。在某些 数据库中可能出现问题(如PostgreSQL)。 10) foreign 使用外部表的字段作为主键。 一般而言,利用uuid.hex 方式生成主键将提供最好的性能和数据库平台适 应性。 (1) name (可选): 持久化类(或者接口)的Java全限定名。 如果这个属性不存在,Hibernate将假定这是一个非POJO的实体映射。 (2) table (可选 - 默认是类的非全限定名): 对应的数据库表名。 (3) discriminator-value (可选 - 默

文档评论(0)

liwenhua00 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档