<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="com.hejian.hibernate.domain">
<class name="Department" table="depart" dynamic-update="true" dynamic-insert="true">
<id name="id">
<generator class="native"></generator>
</id>
<property name="name" type="string" unique="true"></property>
<set name="employees" inverse="true">
<key column="depart_id"/>
<one-to-many class="Employee"/>
</set>
<!--
<set name="employees" cascade="save-update">
<key column="depart_id"/>
<one-to-many class="Employee"/>
</set>
-->
<!-- <list name="employees"> <key column="depart_id"></key> <list-index
column="list_order"></list-index> <one-to-many class="Employee"/> </list>
<array name="employees"> <key column="depart_id"></key> <list-index></list-index>
<one-to-many/> </array> -->
<!-- <bag name="employees"> <key column="depart_id"></key> <one-to-many
class="Employee"/> </bag> -->
<!-- <map name="employees"> <key column="depart_id"></key> <map-key type="string"
column="name"></map-key> <one-to-many class="Employee"/> </map> -->
</class>
</hibernate-mapping>
在配置文件当中设置了dynamic-update=true,为何更新还是更新所有的字段。
=======
只有在同一个session当中才有效。
=======
另外,关于inverse的一点说明。
在有序的集合比如List,Array等,inverse不能设定。
在Many2Many的关联当中,中间表的其中一个一般设inverse=true。
Many2Many这种在中间表是插入数据,其他类型是更新数据
分享到:
相关推荐
在Java的持久化框架Hibernate中,动态更新是一种优化策略,用于提高数据更新的效率。当一个对象的部分属性被修改时,传统的做法是先从数据库中加载该对象的完整信息,再将新值设置到对应的属性上,最后更新整个对象...
在使用Hibernate动态生成表结构之前,我们需要先进行基本的配置。这通常包括以下步骤: 1. 创建`hibernate.cfg.xml`配置文件:在文件中配置数据库连接信息,如URL、用户名、密码等。 2. 创建实体类:这些类代表...
“hibernate增删改查和动态sql”这个标题涵盖了两个主要的Hibernate使用场景。首先,"增删改查"(CRUD操作)是任何数据库操作的基础,包括创建(Create)、读取(Read)、更新(Update)和删除(Delete)。在...
本主题“hibernate动态映射表处理Oracle的CLOB类型”主要聚焦于如何在Hibernate中有效地管理和操作CLOB字段。在Oracle 10g中,CLOB数据类型的处理有时会遇到一些挑战,尤其是在与ORM框架结合使用时。以下将详细介绍...
【标题】:“Hibernate动态建表” 在Java世界中,Hibernate是一个非常流行的ORM(对象关系映射)框架,它允许开发者将数据库操作与Java对象模型相结合,简化了数据库编程。"Hibernate动态建表"指的是在应用运行时...
在本实例中,Hibernate可能被用来管理数据模型,包括对象的创建、查询和更新,以及与SQL Server数据库的交互。 项目中包含的文件: 1. `newhouse.rar`:这可能是一个完整的Web应用程序源代码,包含Struts的配置文件...
Hibernate-Extensions提供了一种自动化方式来处理这些时间戳,比如在对象更新时自动更新某个字段,无需手动设置。 五、其他功能 除了上述特性,Hibernate-Extensions还提供了其他实用功能,如批量操作支持、动态...
在本文中,我们将深入探讨如何在Java Hibernate应用中实现不同数据库之间的动态切换。 首先,我们需要理解Hibernate的核心配置文件`hibernate.cfg.xml`。在这个文件中,通常会指定数据库连接的信息,如URL、用户名...
总的来说,仿照Hibernate动态生成SQL保存对象是一个涉及反射、注解解析、SQL构造等多个技术领域的综合实践。通过这样的方式,你可以创建一个更加灵活且适应性强的ORM框架,满足特定项目的需求。然而,需要注意的是,...
4. **Criteria查询**:除了SQL和HQL(Hibernate查询语言),Hibernate还提供了`Criteria` API进行动态查询。开发者可以通过`Criteria`对象构建查询条件,无需编写字符串查询,提高了代码的可读性和可维护性。 5. **...
此外,hibernate-extensions还支持动态代理,允许我们在运行时动态地添加拦截器,实现如日志、缓存等高级功能。 **Middlegen-Hibernate** 是一个基于Maven的工具,用于将数据库的元数据转换为Hibernate的映射文件和...
- Criteria API:动态构建查询,无需预先编写查询字符串。 十、JPA支持 Hibernate 3.2增加了对Java Persistence API(JPA)的支持,使得开发者可以选择使用标准的JPA接口,增强了与其他JPA实现的互操作性。 通过...
5. **持续更新**:随着Hibernate版本的不断升级和发展,本书也在持续更新中,确保读者能够获取最新的技术和最佳实践。 #### 四、适用人群与学习建议 - **适用人群**: - Java开发人员,特别是那些希望深入学习和...
这一版本的更新使得Hibernate更加易于使用,同时也提高了代码的可读性和可维护性。 二、Hibernate注解基础 1. 实体类注解:`@Entity` `@Entity`注解用于标记一个Java类为数据库中的实体表,每个实例对应表中的一条...
Criteria API则提供了一个程序化的查询方式,可以在运行时动态构建查询。 这个"Hibernate框架jia包"包含的jar文件可能包括Hibernate的核心库、数据库驱动、缓存插件等,确保你在开发过程中能全面支持Hibernate的...
5. **Criteria查询**:Hibernate提供了Criteria API,一种更面向对象的查询方式,允许开发者动态构建查询,无需编写SQL语句。 6. **HQL(Hibernate Query Language)**:类似于SQL,但专为ORM设计,HQL允许开发者以...
7. ** Criteria API**:除了HQL,Hibernate还提供了Criteria API,这是一种更动态的查询方式,可以在运行时构建查询条件。 8. **级联操作**:通过在实体类的属性上设置级联注解,可以控制一个对象的保存、删除等...
注意,不应使用final修饰类,因为这将影响Hibernate的动态代理机制。 2. 持久对象标识OID Hibernate通过对象标识(OID)来区分不同的持久化对象,它相当于数据库中的主键,使得对象与数据库记录一一对应。 总结:...
2. **Session API**:Hibernate 的 Session 接口是数据库操作的核心,负责对象的持久化、检索、更新和删除等操作。Session 提供了事务管理和缓存管理的功能。 3. **Criteria 查询**:除了传统的 HQL(Hibernate ...
数据持久化是Hibernate的核心功能,书中会展示如何使用Hibernate进行CRUD操作(创建、读取、更新和删除)。这涉及到使用Session的save()、saveOrUpdate()、load()、get()、update()、merge()和delete()方法。同时,...