hibernate第四天
来源:互联网 发布:淘宝百信大药房旗舰店 编辑:程序博客网 时间:2024/05/20 11:25
一:
<set name="集合属性名" cascade="all" inverse="true" lazy="false" fetch="join">
<key column="外键所在的列名">
<one-to-many class="">
</set>
多:
<many-to-one name="" column="外键所在的列名">
List<ClassRoom> ls = session.createQuery("from ClassRoom").list();
session.get()/load()
1 outer-join="true"
fetch="join"
lazy="false"
这三个属性只对上述方法生效
fetch outer-join lazy
------------------------------------------------------------------------------------
join *** ***
fetch为join,则后续属性全部失效,使用表连接查询
select ***
fetch=select,如果lazy=true,则使用单条sql只查询单表
如果lazy=flase,则分别发送多条sql语句查询多个表
不写
fetch不写,如果outer-join=true,则lazy失效,使用表连接查询
如果outer-join=false,
lazy=true,则使用单条sql只查询单表
如果lazy=flase,则分别发送多条sql语句查询多个表
============================
fetch > outer-join >lazy
============================
session.createQuery(hql)
hql语句中表连接,不使用fetch,则查询主表属性
使用fetch,则将主表及其关联表中的关联属性全部通过一条sql语句查询
hibernate主键生成策略:
oracle mysql
sequence
适用 不适用
依赖于数据库是否支持序列机制
要求除了业务表必须创建序列
<id generator class="sequence"></id>
+ 创建一个名为hibernate_sequence的序列
<id generator class="sequence">
<param name="sequence">自定义的序列名</param>
</id>
+ 创建自定义序列
increment
适用 适用
不需要指定额外信息
多线程环境下易出错
生成机制不太灵活
<id generator class="increment"></id>
*native
适用 适用
根据当前使用的数据库类型,自动选择其匹配的生成策略
identity sequence hilo
assigned
hibernate不干预主键的生成
需要程序员自己指定
适用于业务主键的情况
适用 适用
<id generator class="assigned"></id>
identity
不适用 适用
要求mysql中建的表的主键必须设置为自增列
mysql : id int primary key auto_increment
sqlServer: id int primary key identity
<id generator class="identity"></id>
*uuid.hex
适用 适用
需要表中的主键必须是字符串类型
线程安全
<generator class="uuid.hex"></generator>
hilo
适用 适用
要求必须额外提供一个单行单列单值表
<generator class="hilo"></generator>
+表名为hibernate_unique_key,列名为next_hi
<generator class="hilo">
<param name="table">my_hilo_table</param>
<param name="column">my_hi</param>
【<param name="max_hi">10</param>】
</generator>
+自定义表
seqhilo
适用 不适用
<generator class="hilo">
<param name="sequence">my_seq</param>
【<param name="max_hi">10</param>】
</generator>
+自定义序列
foreign
适用 适用
只能用在一对一主键共享中
<id generator class="foreign">
<param name="property">当前类中的关系属性名</param>
</id>
- hibernate第四天
- Hibernate第四天
- Hibernate第四天
- Hibernate框架第四天
- Hibernate学习第四天
- Hibernate第四天
- ## Hibernate框架的第四天 ##
- Hibernate框架基础知识第四天查询
- hibernate学习笔记第四天(1)
- hibernate学习笔记第四天(2)
- hibernate学习笔记第四天(3)
- Hibernate学习笔记(第四天)
- 笔记·Hibernate框架第四天
- Hibernate第四阶段
- hibernate 学习笔记(马士兵教程) 第四天
- hibernate的映射和延迟加载--第四天
- Hibernate框架的第四天(查询方式和策略)
- Hibernate 学习笔记第四篇
- 网址
- hibernate第一天
- hibernate第二天
- On Living Quality influnced by technology
- hibernate第三天
- hibernate第四天
- hibernate第五天
- zz DM9000移植到S3C2410 +linux2.6 一例
- hibernate第六天
- DataList精髓
- UML的相关概念(一)
- Asp.Net常用的三十三种代码
- 2010-4-11
- 电脑死机大全