1.在映射一对多的双向关联关系时,应该在”多“方把inverse属性设置为true,这样可以提高应用的性能
如Customer:Order为1:N双向关联,将Customer的Set的inverse设置为true,表示Customer与Order之间的关联关系由Order端来维护,如customer.getOrders().add(o)不会更新Customer与Order之间的关联关系,而order.setCustomer(o)才会更新Customer与Order之间的关联关系。
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!--
Mapping file autogenerated by MyEclipse - Hibernate Tools
-->
<hibernate-mapping>
<class name="domain.Customer" table="customers" catalog="blogday">
<id name="id">
<column name="id" />
<generator class="native"></generator>
</id>
<property name="name">
<column name="name" length="20" />
</property>
<set name="orders" lazy="true" inverse="true" cascade="all">
<key column="customer_id" />
<one-to-many class="domain.Order" />
</set>
</class>
</hibernate-mapping>
2.在建立两个对象的双向关联时,应该同时修改关联两端对象的相应属性
//customer.getOrders().add(order1); //建立customer到order的关联
order.setCustomer(customer);//建立order到customer的关联
虽然没建立customer到order的关联,但是hibernate还是会按照order状态变化同步更新数据库
customer.getOrders().add(order1); //建立customer到order的关联
//order.setCustomer(customer);//建立order到customer的关联
如果没建立order到customer的关联,hibernate不会按照customer状态变化同步更新数据库
为了保证程序的健壮性则应该如下设置:
customer.getOrders().add(order1);//建立customer到order的关联
order.setCustomer(customer);//建立order到customer的关联
具体参考:http://www.iteye.com/topic/156289
分享到:
相关推荐
这些资料构成了一套完整的Hibernate学习路径,从基础到高级,从配置到实践,对于理解Hibernate的核心机制和提升开发技能都非常有帮助。通过阅读和研究这些内容,开发者可以更熟练地运用Hibernate进行数据库操作,...
标题:Hibernate学习笔记3 描述:本篇笔记深入探讨了Hibernate框架中一对多关系的映射及持久化对象状态管理,结合个人理解与实践经验,旨在为读者提供一份详实的学习资料。 ### 一、一对多关系映射详解 在...
本篇文章将全面探讨Hibernate的关联映射学习,包括一对一(One-to-One)、一对多(One-to-Many)、多对一(Many-to-One)以及多对多(Many-to-Many)四种关系映射。 首先,一对一关联映射(One-to-One)是两个实体...
本篇将深入探讨Hibernate学习中的一个重要概念:一对多关联映射。通过阅读指定的博文链接(https://ag-bruce.iteye.com/blog/213436),我们可以了解到如何在实际项目中设置并应用这种关联关系。 一对多关联映射是...
在本篇 Hibernate 学习笔记中,我们将深入探讨多种关联关系的映射,以及相关概念。Hibernate 是一个流行的对象关系映射(ORM)框架,它允许开发者使用 Java 对象来操作数据库,简化了数据访问层的开发工作。 首先,...
**Hibernate对象关系详解** 在Java世界中,Hibernate作为一款强大的对象关系映射(ORM)框架,使得开发者可以方便地在Java...通过深入学习和实践,开发者可以更加自如地驾驭Hibernate,让数据操作变得更加简单和高效。
- 本篇概述了Hibernate入门所需了解的关键知识点,从环境搭建到核心概念再到实际应用场景均有涉及。学习Hibernate不仅可以提升开发效率,还能帮助开发者更好地理解ORM框架的工作原理和技术优势。通过上述内容的学习...
本篇文章将详细介绍如何搭建SSH多对多关系的应用场景。通过具体实例,帮助读者理解整个流程。 #### 二、准备工作 在开始SSH多对多框架的搭建之前,我们需要准备好必要的资源和环境: 1. **所需JAR包**: - ...
#### Hibernate篇 **1. Hibernate优缺点** - **优点**: - 自动管理对象的生命周期。 - 提供强大的ORM映射功能。 - 支持多种数据库。 - **缺点**: - 配置相对繁琐。 - 性能优化需要深入理解。 **2. ...
通过学习和运用诸如Spring、Hibernate等框架,开发者可以更高效地构建稳定可靠的应用程序。此外,理解框架的设计原理和技术细节也有助于提升自身的编程技能和架构设计能力。在未来,随着技术的不断发展,开源软件...