`

Hibernate批量增加和更新带有级联关系的对象

阅读更多
    这里我是Spring和Hibernate一起用的,所以不知道单独使用Hibernate是什么效果,下面总结一下经验,留着以后查看
    这也算是一种挺常见的问题,一个FatherClass下面有多个ChildClass,新增多条FatherClass,如果ChildClass是不同的,比较好处理,只需要FatherClass Set不同的ChildClass就可以了,但是如果ChildClass是一样的,就会造成ChildClass只会第一次新增的时候使用insert的方法,到了第二次就变成了update,即使使用FatherClass.getChildClass.clear()或者是FatherClass.getChildClass.removeall()的方法再进行第二次的新增也会造成update的结果。
     这里说一下我解决的办法,我分成了两部来操作,首先是FatherClass的批量新增,当然只要每次new一个新的FatherClass就能新增了,然后是做子类的新增,把Set<ChildClass>中的子类一个一个取出来,然后new一个ChildClass,Set进去所有的属性和父类,然后再做新增的操作,这样就会每次都进行insert操作了,可能有点笨,但是效果还是挺明显的。
     更新操作的时候子类也比较难处理,我的解决方法是将子类删除,然后再新增新更新后的新子类,所以每次都要FatherClass.getChildClass.clear(),然后再FatherClass.setChildClass(Set<ChildClass>),然后再对FatherClass进行更新操作,这样就达到了子类同时也更新的效果。
分享到:
评论

相关推荐

    精通 Hibernate:Java 对象持久化技术详解(第2版).part2

     C.1 创建带有@hibernate标记的Java源文件  C.2 建立项目的目录结构  C.3 运行XDoclet工具 附录D 发布和运行netstore应用  D.1 运行netstore所需的软件  D.2 netstore应用的目录结构  D.3 安装SAMPLEDB...

    精通 Hibernate:Java 对象持久化技术详解(第2版).part4

     C.1 创建带有@hibernate标记的Java源文件  C.2 建立项目的目录结构  C.3 运行XDoclet工具 附录D 发布和运行netstore应用  D.1 运行netstore所需的软件  D.2 netstore应用的目录结构  D.3 安装SAMPLEDB...

    精通 Hibernate:Java 对象持久化技术详解(第2版).part3

     C.1 创建带有@hibernate标记的Java源文件  C.2 建立项目的目录结构  C.3 运行XDoclet工具 附录D 发布和运行netstore应用  D.1 运行netstore所需的软件  D.2 netstore应用的目录结构  D.3 安装SAMPLEDB...

    精通 Hibernate:Java 对象持久化技术详解(第2版).part1.rar

     C.1 创建带有@hibernate标记的Java源文件  C.2 建立项目的目录结构  C.3 运行XDoclet工具 附录D 发布和运行netstore应用  D.1 运行netstore所需的软件  D.2 netstore应用的目录结构  D.3 安装SAMPLEDB...

    Hibernate实战(第2版 中文高清版)

     14.3.1 联结关系和关联   14.3.2 报表查询   14.3.3 利用子查询   14.4 小结   第15章 高级查询选项   15.1 利用条件和示例查询   15.1.1 基本的条件查询   15.1.2 联结和动态抓取   15.1.3 投影...

    低清版 大型门户网站是这样炼成的.pdf

    5.1.11 持久化对象间的级联操作 277 5.2 hibernate的检索策略 291 5.2.1 立即检索 291 5.2.2 延迟检索 296 5.2.3 迫切左外连接检索 300 5.3 hql查询方式 303 5.3.1 基本查询 303 5.3.2 条件查询 305 5.3.3 ...

    Spring.3.x企业应用开发实战(完整版).part2

    6.2.1 带有横切逻辑的实例 6.2.2 JDK动态代理 6.2.3 CGLib动态代理 6.2.4 AOP联盟 6.2.5 代理知识小结 6.3 创建增强类 6.3.1 增强类型 6.3.2 前置增强 6.3.3 后置增强 6.3.4 环绕增强 6.3.5 异常抛出增强 6.3.6 引介...

    Spring3.x企业应用开发实战(完整版) part1

    6.2.1 带有横切逻辑的实例 6.2.2 JDK动态代理 6.2.3 CGLib动态代理 6.2.4 AOP联盟 6.2.5 代理知识小结 6.3 创建增强类 6.3.1 增强类型 6.3.2 前置增强 6.3.3 后置增强 6.3.4 环绕增强 6.3.5 异常抛出增强 6.3.6 引介...

Global site tag (gtag.js) - Google Analytics