Hibernate的generator属性之意义
来源:互联网 发布:linux命令行登录mysql 编辑:程序博客网 时间:2024/06/12 19:25
1、identity:用于MySql数据库。特点:递增
- < id name="id" column="id">
- < generator class="identity"/>
- < /id>
采用数据库提供的主键生成机制。如DB2、SQL Server、MySQL 中的主键生成机制。
注:对于MySql数据库使用递增序列时需要在建表时对主键指定为auto_increment属性。
2、sequence:用于Oracle数据库
- < id name="id" column="id">
- < generator class="sequence">
- < param name="sequence">序列名< /param>
- < /generator>
- < /id>
采用数据库提供的 sequence 机制生成主键。如 Oralce 中的Sequence。
3、native:跨数据库时使用,由底层方言产生。
Default.sequence为hibernate_sequence
- < id name="id" column="id">
- < generator class="native"/>
- < /id>
由 Hibernate 根据使用的数据库自行判断采用 identity、hilo、sequence 其中一种作为主键生成方式。
注:使用native时Hibernate默认会去查找Oracle中的hibernate_sequence序列。
如果Oracle中没有该序列,连Oracle数据库时会报错。
4、hilo:通过高低位合成id,先建表hi_value,再建列next_value。必须要有初始值。
- < id name="id" column="id">
- < generator class="hilo">
- < param name="table">high_val< /param>
- < param name="column">nextval< /param>
- < param name="max_lo">5< /param>
- < /generator>
- < /id>
通过hi/lo 算法实现的主键生成机制,需要额外的数据库表或字段提供高位值来源。
5、sequencehilo:同过高低位合成id,建一个sequence序列,不用建表。
- < id name="id" column="id">
- < generator class="hilo">
- < param name="sequence">high_val_seq< /param>
- < param name="max_lo">5< /param>
- < /generator>
- < /id>
与hilo 类似,通过hi/lo 算法实现的主键生成机制,需要数据库中的 Sequence,适用于支持 Sequence 的数据库,如Oracle。
6、assigned:用户自定义id;
- < id name="id" column="id">
- < generator class="assigned"/>
- < /id>
主键由外部程序负责生成,在 save() 之前指定一个。
7、foreign:使用另外一个相关联的对象的标识符作为主键。用于一对一关系共享主健时,两id值一样。
8、uuid.hex 由 Hibernate 基于128 位 UUID 算法 生成16 进制数值(编码后以长度32 的字符串表示)作为主键。
9、 uuid.string 与uuid.hex 类似,只是生成的主键未进行编码(长度16),不能应用在 PostgreSQL 数据库中。
- Hibernate的generator属性之意义
- Hibernate的generator属性之意义
- Hibernate的generator属性之意义
- Hibernate的generator属性之意义
- Hibernate的generator属性之意义
- Hibernate的generator属性之意义
- Hibernate的generator属性之意义
- Hibernate的generator属性之意义
- Hibernate的generator属性之意义
- Hibernate的generator属性之意义
- 转载 Hibernate的generator属性之意义
- Hibernate的generator属性之意义
- 【Hibernate】Hibernate的generator属性的意义
- Hibernate递增 配置 generator属性之意义
- Hibernate递增 配置 generator属性之意义
- Hibernate的generator属性的意义
- Hibernate的generator属性的意义
- Hibernate的generator属性的意义
- (MS SQL)HOW TO USE FETCH
- 银光实时压缩和解压控件Xceed Real-Time Zip for Silverlight控件下载及详细介绍使用方法
- 编译dll文件时,error:程序数据库管理器不匹配;请检查安装
- 零拷贝的定义
- CSS基础知识梳理-anchor链接
- Hibernate的generator属性之意义
- 【VBA研究】用VBA取得EXCEL有效行列数方法比较
- mysql不支持远程连接的解决办法(#报错:1130-host ... is not allowed to connect to this MySql server 开放mysql远程连接 不使用lo
- 冒泡排序的实现
- 今天是个好日子,真的是好日子
- C++中的智能指针
- Linux之V4L2基础编程
- C#获取文件路径
- 2014-12周-项目一(3)