Hibernate主键生成策略和一对一,一对多的有关内容
来源:互联网 发布:自己实现数据库 编辑:程序博客网 时间:2024/05/17 23:50
一. Hibernate主键生成策略有七个:
<数字>1. increment:由Hibernate框架生成,会去查询数据库中最大值,适应任何数据库
<generator class="sequence">
<param name="sequence">数据库sequence名字</param>
</generator>
2. sequence: 由数据库的sequence生成,只适应Oracle数据库
3. identity的自动增长方式
适用于MySQL、DB2、MS SQL Server,采用数据库生成的主键,用于为long、short、int类型生成唯一标识,使用SQL Server 和 MySQL 的自增字段,这个方法不能放到 Oracle 中,Oracle 不支持自增字段,要设定sequence(MySQL 和 SQL Server 中很常 用)数据库中的语法如下:MySQL:create table t_user(id int auto_increment primary key, name varchar(20));SQL Server:create table t_user(id int identity(1,1) primary key, name varchar(20));
<id name="id" column="id" type="long">
<generator class="identity" />
</id>
4. native会根据底层数据库的能力,从identity、sequence、hilo中选择一个,灵活性更强,但此时,如果选择sequence或者hilo, 则所有的表的主键都会从Hibernate默认的sequence或者hilo表中取。并且,有的数据库对于默认情况主键生成测试的支持,效率并不是 很高,对于 oracle 采用 Sequence 方式,对于MySQL 和 SQL Server 采用identity(自增主键生成机制),native就是将主键的生成 工作交由数据库完成,hibernate不管(很常用)
<id name="id" column="id">
<generator class="native" />
</id>
<字符串>5. asslgned:由框架判断底层数据库的类型,并由数据库生成
6. uuid:由框架生成32位的字符串,作为表的主键,适应于所有数据库
使用一个128-bit的UUID算法生成字符串类型的标识符,UUID被编码成一个32位16进制数字的字符串。UUID包含:IP地 址、JVM启动时间、系统时间(精确到1/4秒)和一个计数器值(JVM中唯一),hibernate会算出一个128位的唯一值插入
<id name="id" column="id">
<generator class="uuid.hex" />
</id>
uuid.string
hibernate会算出一个16位的值插入
7. foreign使用外部表的字段作为主键
二. 一对一,一对多有关内容:
eg: 人 身份证之间的关系
实体类: 1. 主表和从表之分 2. 主表中有从表的属性,从表中有主表的属性
one-to-one 映射文件: 1. 主表:<one-to-one name="主表中定义从表的对象名" class="从表类全限名">
2. 主键的生成策略:foreign
<generator class="foreign">
<param name="property">从表中定义主表的对象名</param>
</generator>
3. 从表: <one-to-one name="从表中定义主表的对象名" class="主表类全限名">
CRUO: 1. 添加:设置级联
2. 删除: 如果要删除从表,则必须设设置: 主表的从表属性为NULL
- Hibernate主键生成策略和一对一,一对多的有关内容
- hibernate 一对多主键策略
- hibernate联合主键生成策略以及一对多配置
- hibernate中一对多等关系映射图和主键生成策略
- 一对一主键生成策略
- Hibernate和JPA的主键生成策略
- jpa和hibernate的主键生成策略
- hibernate主键的生成策略
- Hibernate的主键生成策略
- hibernate的主键生成策略
- Hibernate的主键生成策略
- hibernate的主键生成策略
- hibernate的主键生成策略
- hibernate的主键生成策略
- Hibernate主键的生成策略
- Hibernate的主键生成策略
- hibernate的主键生成策略
- Hibernate的主键生成策略
- easyUI( accordion +tree)动态生成导航菜单(数据库读取数据)
- 文章标题
- 纪念碑谷
- mark
- 二叉树的建立与遍历
- Hibernate主键生成策略和一对一,一对多的有关内容
- 2017年11月5日训练总结
- JavaScript 全局变量
- java基础(一)
- sql查询某个字段的value值为字符串的一定要加单引号
- 顺序表的插入与删除
- 关于继承与委托设计笔记----C++学习之路
- wustoj(二叉树的非递归遍历方法)
- 无人机驾驶员培训学习记录(八)