单向一对多关联:
主控方:(即父亲一方)
<set
name="addresses"
table="t_address"
lazy="false"
inverse="false"
cascade="all"
sort="unsorted"
order-by="zipcode asc">
<key column="user_id"><!--< span="" /-->key>
<one-to-many class="org.hibernate.sample.TAddress"
/>
<!--< span="" /-->set>
被动方(Taddress)的记录由Hibernate 负责读取,之后存放在主控方指定的Collection类型属性中。
双向一对多关联:
主控端:
<set
name="addresses"
table="t_address"
lazy="false"
inverse="true" ①将这个属性设置为TRUE即可
cascade="all"
sort="unsorted"
order-by="zipcode asc">
<key column="user_id" ><!--< span="" /-->key>
<one-to-many class="org.hibernate.sample.TAddress"
/>
<!--< span="" /-->set>
被控端:
<many-to-one
name="user" ①
class="org.hibernate.sample.TUser"
cascade="none"
outer-join="auto"
update="true"
insert="true"
access="property"
column="user_id"
not-null="true"
/>
多对多关系:
主控端:
<set
name="roles"
table="t_group_role" ①
lazy="false"
inverse="false"
cascade="save-update" ②
>
<key column="group_id" ③>
<!--< span="" /-->key>
<many-to-many class="org.hibernate.sample.TRole"
column="role_id" ④/>
<!--< span="" /-->set>
被控端:
<set
name="groups"
table="t_group_role"
lazy="false"
inverse="true"
cascade="save-update"
sort="unsorted">
<key column="role_id"><!--< span="" /-->key>
<many-to-many
class="org.hibernate.sample.TGroup"
column="group_id"
outer-join="auto"/>
14)TUser user = (TUser)session.load(TUser.class,new Integer(1));
15)悲观锁:用FOR UPDATE
String hqlStr ="from TUser as user where user.name='Erica'";
Query query = session.createQuery(hqlStr);
query.setLockMode("user",LockMode.UPGRADE); //加锁
List userList = query.list();//执行查询,获取数据
16)乐观锁:用版本控制
<class
name="org.hibernate.sample.TUser"
table="t_user"
dynamic-update="true"
dynamic-insert="true"
optimistic-lock="version"
>
……
<!--< span="" /-->class>
事务主要包括JTA事务,JDBC事务
1)Session.load(对象类,ID)直接读取对象
2)Session.get(对象类,ID)直接读取对象,如果对象不能知道是否存在,如果不存在返回NULL
3)Session.iterate(HQL)直接返回一个ITERATOR接口的对象实例
4)Query q = Session.createQuery(HQL), List result =q.list();得到LIST结果集
5)Criteria crit = session.createCriteria(Cat.class);条件查询
crit.add( Expression.eq("color", eg.Color.BLACK) );
crit.setMaxResults(10);
List cats = crit.list();
相关推荐
总之,《深入浅出Hibernate》读书笔记涵盖了实体对象生命周期的转换、实体对象的识别机制以及Hibernate的多级缓存策略,这些都是理解并有效使用Hibernate的关键点。通过深入学习这些概念,开发者能够更好地掌握...
hibernate读书笔记,里面有一些实例和解说,是自己整理的,非常适合开发时做参考
本文主要讨论从Hibernate 2升级到Hibernate 3的过程中需要注意的关键步骤,这对于使用SSH(Spring、Struts和Hibernate)框架的项目尤其重要。 首先,升级的第一步涉及替换jar包。将旧版本的Hibernate 2.1.jar替换为...
这篇读书笔记将深入探讨Hibernate的核心概念、工作原理以及如何在实际项目中应用它。 **一、Hibernate简介** Hibernate是由 Gavin King 创建的一个强大的Java ORM 解决方案,它允许开发人员使用面向对象的方式来...
Manning出版 Java Persistence With Hibernate 第二版 清晰pdf Hibernate, an open source project that is almost 15 years old. In a recent poll, Hibernate was among the top five tools used by many Java ...
在本篇文章中,我们将深入探讨Hibernate3的核心概念、主要功能以及如何在实际项目中应用。 一、Hibernate3核心概念 1. 实体(Entity):在Hibernate中,实体代表数据库中的表,是Java类的一个实例。通过在类上使用...
Hibernate 配置各种数据库 Hibernate 是一个基于 Java 的持久层框架,提供了一个抽象的数据访问层,能够与多种数据库进行集成。在 Hibernate 的配置文件中,我们可以配置不同的数据库连接,包括驱动程序、URL 等...
详解hibernate.hbm2ddl.atuo 属性的配置
hibernate2.jar是hibernate的一个核心库
Struts2Hibernate整合jar包,直接放进工程里用就可以了,不少东西
"Hibernate入门到精通" Hibernate 是一个基于Java的ORM(Object-Relational Mapping,对象关系映射)框架,它提供了一种简洁高效的方式来访问和操作关系数据库。下面是 Hibernate 的主要知识点: Hibernate 简介 ...
hibernate2的核心jar包 hibernate2.jar
Struts2、Hibernate和FreeMarker是Java开发领域中常见的三个开源框架,它们分别在MVC(Model-View-Controller)架构的不同层面发挥着关键作用。这个"struts2+hibernate+freemarker"项目实例是将这三个框架集成到一起...
2. **Hibernate配置**:如何在项目中引入Hibernate,配置Hibernate的属性,如JDBC连接、数据库驱动、实体映射等。特别是如何配置H2数据库作为Hibernate的工作数据库。 3. **Entity映射**:Hibernate使用注解或XML...
第二篇可能进一步深入到Hibernate的高级特性,如HQL(Hibernate查询语言)和Criteria API,它们提供了更加灵活的数据查询方式。同时,可能会讲解级联操作、懒加载与立即加载策略、集合映射(例如List、Set、Map等)...
根据提供的标题、描述、标签及部分内容,我们可以了解到这篇文章主要探讨的是如何在Struts2与Hibernate框架结合下实现分页功能。接下来将详细解析Struts2与Hibernate如何协作完成这一任务。 ### Struts2与Hibernate...
本书分为5篇共21章,包括环境准备篇、Struts 2篇、Hibernate 3篇、Spring 2篇和实战篇。本书实例丰富、内容知识全面,浅显易懂,能够帮助读者尽快掌握这3种框架技术的使用。 本书适合作为Java/Java EE开发的初...