﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-KevinGong-随笔分类-Hibernate</title><link>http://www.blogjava.net/coffeecat/category/11291.html</link><description /><language>zh-cn</language><lastBuildDate>Wed, 28 Feb 2007 08:20:20 GMT</lastBuildDate><pubDate>Wed, 28 Feb 2007 08:20:20 GMT</pubDate><ttl>60</ttl><item><title>hibernate中配置及定义自定义主键生成方式  </title><link>http://www.blogjava.net/coffeecat/archive/2006/05/25/47942.html</link><dc:creator>KevinGong</dc:creator><author>KevinGong</author><pubDate>Thu, 25 May 2006 00:15:00 GMT</pubDate><guid>http://www.blogjava.net/coffeecat/archive/2006/05/25/47942.html</guid><wfw:comment>http://www.blogjava.net/coffeecat/comments/47942.html</wfw:comment><comments>http://www.blogjava.net/coffeecat/archive/2006/05/25/47942.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/coffeecat/comments/commentRss/47942.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/coffeecat/services/trackbacks/47942.html</trackback:ping><description><![CDATA[根据数据库来指定映射配置文件得主键生成策略.<br />Generator 为每个 POJO 的实例提供唯一标识。一般情况，我们使用“native”。class 表示采用由生成器接口net.sf.hibernate.id.IdentifierGenerator 实现的某个实例，其中包括： <br />“assigned” <br />主键由外部程序负责生成，在 save() 之前指定一个。 <br /><br />“hilo” <br />通过hi/lo 算法实现的主键生成机制，需要额外的数据库表或字段提供高位值来源。 <br /><br />“seqhilo” <br />与hilo 类似，通过hi/lo 算法实现的主键生成机制，需要数据库中的 Sequence，适用于支持 Sequence 的数据库，如Oracle。 <br /><br />“increment” <br />主键按数值顺序递增。此方式的实现机制为在当前应用实例中维持一个变量，以保存着当前的最大值，之后每次需要生成主键的时候将此值加1作为主键。这种方式可能产生的问题是：不能在集群下使用。 <br /><br />“identity” <br />采用数据库提供的主键生成机制。如DB2、SQL Server、MySQL 中的主键生成机制。 <br /><br />“sequence” <br />采用数据库提供的 sequence 机制生成主键。如 Oralce 中的Sequence。 <br /><br />“native” <br />由 Hibernate 根据使用的数据库自行判断采用 identity、hilo、sequence 其中一种作为主键生成方式。 <br /><br />“uuid.hex” <br />由 Hibernate 基于128 位 UUID 算法 生成16 进制数值（编码后以长度32 的字符串表示）作为主键。<br /><br />“uuid.string” <br />与uuid.hex 类似，只是生成的主键未进行编码（长度16），不能应用在 PostgreSQL 数据库中。 <br /><br />“foreign” <br />使用另外一个相关联的对象的标识符作为主键。<br /><img src ="http://www.blogjava.net/coffeecat/aggbug/47942.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/coffeecat/" target="_blank">KevinGong</a> 2006-05-25 08:15 <a href="http://www.blogjava.net/coffeecat/archive/2006/05/25/47942.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>