`

hibernate一对多多对一方式更新的一些总结

阅读更多

有两张表,其中 infoCenter表中有字段conference_key关联info_conference的主键

这样在JAVA中的InfoConference类中有private Set infoCenters这个属性了

我现在要更新这个infoCenters,一开始一直没成功,后来查了文档,把设置贴出来。。。

infoConference.hbm.xml:

 <set
        name="infoCenters"
        lazy="false"
        order-by="title desc"
        cascade="all"
    >
        <key>
            <column name="conference_key" />
        </key>
        <one-to-many
            class="com.arvato.shlib.data.InfoCenter"
        />
    </set>

 

原来我是cascade="all"这个没有加
InfoCenter.hbm.xml:

  <many-to-one
        name="infoConference"
        class="com.arvato.shlib.data.InfoConference"
        not-null="true"
    >
        <column name="conference_key" />
    </many-to-one>

然后在程序里面更新是这么写:

Set<InfoCenter> infoCenters = new HashSet<InfoCenter>();
		if (null != infos) {
			for (int i = 0; i < infos.length; i++) {
				InfoCenter infoCenter = infoCenterAccessor
						.getInfoCenter(infos[i]);
				if (null != infoCenter) {
					infoCenters.add(infoCenter);
				}
			}
			infoConference.getInfoCenters().clear();
			infoConference.setInfoCenters(infoCenters);
		}else{
			infoConference.setInfoCenters(null);
		}
		
		infoConferenceAccessor.saveOrUpdate(infoConference);

  原来的写法是没有

infoConference.getInfoCenters().clear();/*导致从前的数据没被清理*/
分享到:
评论
1 楼 flylovejings 2008-12-31  
infoConference.getInfoCenters().clear();

mark it!

相关推荐

    hibernate 一对多多对一的映射

    在Hibernate中,可以通过以下方式实现一对多映射: 1. **配置文件映射**:在Hibernate的配置文件(如`hibernate.cfg.xml`)中,声明两个实体类对应的数据库表,并设置关联关系。 2. **实体类定义**:在Java实体类中...

    hibernate一对多多对一源码例子

    总结来说,这个源码例子展示了如何在Hibernate中利用注解和XML映射文件来建立和管理一对多多对一关系。在实际项目中,这种关系模型可以帮助我们更好地组织数据,简化数据库操作,提高代码的可读性和维护性。理解并...

    Hibernate知识点总结

    ### Hibernate知识点总结 #### 一、Hibernate概述 Hibernate是一个开源的ORM(Object Relational Mapping,对象关系映射)框架,用于Java应用与关系型数据库之间的交互。它通过使用描述对象和数据库之间映射的元...

    hibernate知识复习三:关联映射:一对多/多对一

    总结,理解并熟练掌握Hibernate的一对多和多对一关联映射对于Java开发者来说是至关重要的。它不仅简化了数据库操作,也使得代码更加面向对象,易于理解和维护。在实际工作中,结合源码阅读和相关工具,我们可以更好...

    Hibernate4的一些总结

    【标题】:“Hibernate4的一些总结” 【描述】:这篇博客主要涵盖了Hibernate4框架在实际开发中的应用和理解,作者通过个人实践对Hibernate4的核心特性和使用技巧进行了深度解析。 【标签】:“源码”和“工具”这...

    Hibernate中大量数据的更新

    Hibernate 提供了两种批量更新机制:一级缓存(First-Level Cache)和批量抓取(Batching)。 一级缓存 Hibernate 的一级缓存是指 Session 对象中缓存的所有对象。在批量更新时,如果不及时清除一级缓存,可能会...

    Hibernate 简单 PPT 总结

    【Hibernate 简单 PPT 总结】 Hibernate 是一个流行的开源对象关系映射(ORM)框架,它简化了Java应用程序对数据库的操作。通过提供一套API和元数据,Hibernate允许开发者将业务对象直接映射到数据库表,从而避免了...

    Hibernate存储Clob字段的方式总结

    Hibernate存储Clob字段的方式总结涉及了在Java开发中使用Hibernate操作大型文本字段Clob的操作方法。本文主要介绍了两种操作Clob字段的方法,一种是将Clob字段直接映射为String类型,另一种是使用Clob类型进行处理。...

    hibernate学习总结文档

    Hibernate 支持多种关联关系,如一对一(OneToOne)、一对多(OneToMany)、多对一(ManyToOne)和多对多(ManyToMany)。关联关系可以通过外键或代理键实现,配置包括懒加载(lazy loading)和级联操作(cascading...

    hibernate文档总结,技术汇总,PDF版的,hibernate简明参考文档

    13. **关联映射**: Hibernate支持一对一、一对多、多对一和多对多的关联映射,允许对象之间建立复杂的关联关系。 14. **事件监听器**: Hibernate允许注册事件监听器,监听对象的生命周期事件,如加载、保存、更新和...

    Hibernate4总结文档

    《Hibernate4总结文档》 Hibernate4作为一款强大的Java对象关系映射框架,简化了数据库操作,使得开发者可以更专注于业务逻辑而不是数据库层面的细节。本文将深入探讨Hibernate4的配置和使用,帮助开发者更好地理解...

    Hibernate更新某些字段

    Hibernate 是一个基于 Java 的 ORM 框架,它提供了对数据库的操作接口。在实际开发中,我们经常需要更新数据库中的某些字段,而不是所有字段。那么,如何使用 Hibernate 实现更新某些字段呢? 首先,我们需要了解 ...

    hibernate技术研究对比总结

    讨论了 Hibernate 如何处理一对一、一对多、多对一和多对多的关系映射,包括懒加载、级联操作和集合类型的选择。 ### 5. 查询语言(HQL)与 Criteria API Hibernate 提供了自己的查询语言 HQL,类似于 SQL 但面向...

    hibernate基于主外键的一对多/多对一关联

    总结起来,Hibernate中的一对多/多对一关联是通过主外键映射来实现的,通过注解和配置文件定义实体间的关联关系,利用懒加载或立即加载策略控制数据获取,同时要注意双向关联的维护和级联操作的设置,以确保数据的...

    Hibernate级联操作一对多demo

    在这个" Hibernate级联操作一对多demo "中,我们将探讨如何在一对多的关系中应用级联操作。 一对多关系是数据库中常见的关系类型,它表示一个实体(如部门)可以有多个相关实体(如员工)。在Hibernate中,这种关系...

    Hibernate 一对一

    深入理解 Hibernate 一对一映射的实现原理,需要阅读 Hibernate 源码,了解其如何生成 SQL 以及如何处理关联对象的加载和更新。 **总结** Hibernate 的一对一映射是 ORM 设计中的重要部分,它使得数据访问更加便捷...

    Hibernate annotation JPA 一对多,多对多

    在Java的持久化框架中,Hibernate是一个非常流行的ORM(对象关系映射)工具,它使得开发者可以使用面向对象的方式来操作数据库。JPA(Java Persistence API)是Java平台上的标准持久化框架,它定义了规范,而...

Global site tag (gtag.js) - Google Analytics