`
songzi0206
  • 浏览: 158861 次
  • 性别: Icon_minigender_1
  • 来自: 上海
博客专栏
Group-logo
All are from ...
浏览量:33817
Group-logo
Programming w...
浏览量:19683
社区版块
存档分类
最新评论

竟然是这个原因导致Hibernate级联保存出错

 
阅读更多
    今天帮朋友改一个问题,hibnernate的级联保存出错,莫名奇妙的错误,一会session关闭了,一会瞬时对象无法保存,一遍又一遍的检查这mapping文件,没什么问题啊,这是单项一对多关联:
一端:
<hibernate-mapping package="com.bestv.bi.usertrack.model">
<class name = "ParameterRecord" table = "fact_parameterrecord">
  <id name="id" type="long">    
     <column name="id" precision="22" scale="0" />    
     <generator class="sequence">    
     <param name="sequence">SEQ_PARAMETERRECORD</param>    
     </generator>    
  </id>
  。。。
  <set name="paraValues"
     table="FACT_PARAVALUE"
     lazy="false"
     inverse="false" cascade="all" >
  <key column="RECORD_ID"/>
  <one-to-many class="ParaValue" />
  </set>
</class>
</hibernate-mapping>

多端不做配置
    感觉没什么错啊。
    再加上flex前台通过blazeds访问后台,一开始都没有打出报错信息,以为是事务没有配置好,改来改去都不对。后来打出faultevent信息,才发现定位到hibnerate数据库保存出错。可是想来想去也不知为什么。后来才发现tmd他的FACT_PARAVALUE表中的RECORD_ID有个不能为空的约束导致的这个问题。
    原因是,当hibernate保存ParameterRecord对象的时候,是先保存fact_parameterrecord表的记录和FACT_PARAVALUE表的记录,然后再去updateFACT_PARAVALUE表中RECORD_ID字段。也就是说,在保存FACT_PARAVALUE记录的时候是没有RECORD_ID信息的,而这个字段恰好有not null约束,所以导致错误。
分享到:
评论

相关推荐

    hibernate many-to-many级联保存,级联更新,级联删除

    假设我们有一个Student对象,它包含了若干Course对象,配置了级联保存后,只需调用`session.saveOrUpdate(student)`,Hibernate就会自动处理Student对象及其关联的所有Course对象的保存。 五、级联更新 如果修改了...

    hibernate 级联查询

    “Hibernate 级联查询”是指在使用Hibernate这个Java持久化框架时,如何处理对象之间的关联查询。Hibernate提供了级联操作来简化数据的保存、更新和删除等操作,使得开发者无需手动编写复杂的SQL语句,就能实现关联...

    Hibernate的级联操作(增,删,该)

    当设置为`CascadeType.ALL`或`CascadeType.PERSIST`时,如果在父实体中创建了一个新的子实体,并且这个子实体还没有被持久化到数据库,那么在保存父实体时,Hibernate会自动将子实体一并保存。例如,在一对多关系中...

    Hibernate级联操作一对多demo

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

    hibernate级联增删改查

    在Java开发中,Hibernate是一个非常流行的ORM(对象关系映射)框架,它允许开发者将数据库操作转换为面向对象的方式,简化了数据访问层的工作。在处理一对多、多对一等关联关系时,Hibernate提供了级联操作功能,...

    Hibernate的缓存级联查询

    在IT领域,尤其是在Java开发中,Hibernate是一个非常重要的对象关系映射(ORM)框架,它允许开发者用面向对象的方式操作数据库。尽管随着Spring Data JPA等现代技术的崛起,Hibernate的使用频率有所下降,但其核心...

    hibernate 级联(cascade和inverse)一对多

    在Java的持久化框架Hibernate中,级联操作(Cascade)和反转(Inverse)是两个重要的概念,它们主要用于管理对象关系模型中的关联关系。在一对多的关系中,这些特性可以帮助简化数据操作,提高代码的可读性和维护性...

    Hibernate_级联关系说明_-_关于cascade和inverse的用法

    在探讨Hibernate框架中的级联操作(cascade)与控制权反转(inverse)之前,我们需要先对Hibernate有一个基本的理解。Hibernate是一个开放源代码的对象关系映射(ORM)框架,它为Java应用提供了一种将对象模型映射到...

    Hibernate级联操作.docx

    Hibernate 是一个流行的对象关系映射(ORM)框架,它允许开发者使用 Java 对象来操作数据库。在 Hibernate 中,级联操作(Cascade)和反向属性(Inverse)是管理对象关系的重要概念,特别是在处理一对多(One-to-...

    Hibernate 一对多、多对一、级联、加载、反转

    3. **级联操作**:级联是指当对一个实体进行某些操作(如保存、删除)时,这些操作会自动传播到与其关联的其他实体。例如,如果我们设置级联类型为`CascadeType.ALL`,那么删除一个用户时,与之关联的所有订单也会被...

    第七章_Hibernate_-_级联策略

    第七章_Hibernate_-_级联策略 第七章

    用hibernate做的省市县三级级联,

    总的来说,这个项目展示了如何使用Hibernate、Ajax和DWR来实现一个高效、用户友好的省市县三级级联选择功能。开发过程中涉及了ORM、MVC架构、数据库操作以及前端交互等多个方面,是学习和实践Web开发技能的好实例。

    关于Hibernate级联删除的问题.doc

    在Java的持久化框架Hibernate中,级联操作是一种非常实用的功能,它允许我们在对一个对象进行操作时,自动处理与其关联的对象。级联删除(Cascade Delete)就是其中之一,当删除一个对象时,会根据配置自动删除与之...

    3.3、Hibernate级联关系(Av839011656,P3).mp4

    3.3、Hibernate级联关系(Av839011656,P3).mp4

    Hibernate cascade (级联).doc

    这意味着当你保存或更新一个实体时,与其关联的实体也将被保存或更新,但在删除实体时不会执行级联操作。 4. **delete**:仅在删除实体时执行级联操作。当你删除一个实体时,与之关联的所有实体也将被删除。 5. **...

    Ajax+struts+hibernate实现级联菜单

    Ajax+struts+hibernate实现级联菜单 Ajax+struts+hibernate实现级联菜单 Ajax+struts+hibernate实现级联菜单

    hibernate3.2的级联关系_JavaProject

    级联关系在Hibernate中是指当一个实体发生某种操作(如保存、更新、删除)时,是否会影响到与之相关联的其他实体。通过配置级联关系,我们可以控制这些关联实体的行为。 1. **一对多(OneToMany)**:在数据库中,...

    Hibernate_范型_级联

    而级联(Cascading)则是Hibernate中处理关联对象的一种策略,它定义了当一个实体被保存、更新或删除时,与之关联的其他实体应该如何处理。 【描述】: Hibernate中的范型主要体现在SessionFactory、Session、...

    cas.rar_MATLAB 级联失效_级联_级联失效 代码_级联失效代码_级联失效算法

    "级联_级联失效 代码"则表明这个压缩包包含了级联失效的程序代码,这些代码可能是由MATLAB编写,用于仿真和分析网络中的级联失效现象。 "级联失效代码"是实际的程序源码,可能包括了各种算法,如故障传播模型、网络...

Global site tag (gtag.js) - Google Analytics