`
- 浏览:
158861 次
- 性别:
- 来自:
上海
-
今天帮朋友改一个问题,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约束,所以导致错误。
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
假设我们有一个Student对象,它包含了若干Course对象,配置了级联保存后,只需调用`session.saveOrUpdate(student)`,Hibernate就会自动处理Student对象及其关联的所有Course对象的保存。 五、级联更新 如果修改了...
“Hibernate 级联查询”是指在使用Hibernate这个Java持久化框架时,如何处理对象之间的关联查询。Hibernate提供了级联操作来简化数据的保存、更新和删除等操作,使得开发者无需手动编写复杂的SQL语句,就能实现关联...
当设置为`CascadeType.ALL`或`CascadeType.PERSIST`时,如果在父实体中创建了一个新的子实体,并且这个子实体还没有被持久化到数据库,那么在保存父实体时,Hibernate会自动将子实体一并保存。例如,在一对多关系中...
在这个" Hibernate级联操作一对多demo "中,我们将探讨如何在一对多的关系中应用级联操作。 一对多关系是数据库中常见的关系类型,它表示一个实体(如部门)可以有多个相关实体(如员工)。在Hibernate中,这种关系...
在Java开发中,Hibernate是一个非常流行的ORM(对象关系映射)框架,它允许开发者将数据库操作转换为面向对象的方式,简化了数据访问层的工作。在处理一对多、多对一等关联关系时,Hibernate提供了级联操作功能,...
在IT领域,尤其是在Java开发中,Hibernate是一个非常重要的对象关系映射(ORM)框架,它允许开发者用面向对象的方式操作数据库。尽管随着Spring Data JPA等现代技术的崛起,Hibernate的使用频率有所下降,但其核心...
在Java的持久化框架Hibernate中,级联操作(Cascade)和反转(Inverse)是两个重要的概念,它们主要用于管理对象关系模型中的关联关系。在一对多的关系中,这些特性可以帮助简化数据操作,提高代码的可读性和维护性...
在探讨Hibernate框架中的级联操作(cascade)与控制权反转(inverse)之前,我们需要先对Hibernate有一个基本的理解。Hibernate是一个开放源代码的对象关系映射(ORM)框架,它为Java应用提供了一种将对象模型映射到...
Hibernate 是一个流行的对象关系映射(ORM)框架,它允许开发者使用 Java 对象来操作数据库。在 Hibernate 中,级联操作(Cascade)和反向属性(Inverse)是管理对象关系的重要概念,特别是在处理一对多(One-to-...
3. **级联操作**:级联是指当对一个实体进行某些操作(如保存、删除)时,这些操作会自动传播到与其关联的其他实体。例如,如果我们设置级联类型为`CascadeType.ALL`,那么删除一个用户时,与之关联的所有订单也会被...
第七章_Hibernate_-_级联策略 第七章
总的来说,这个项目展示了如何使用Hibernate、Ajax和DWR来实现一个高效、用户友好的省市县三级级联选择功能。开发过程中涉及了ORM、MVC架构、数据库操作以及前端交互等多个方面,是学习和实践Web开发技能的好实例。
在Java的持久化框架Hibernate中,级联操作是一种非常实用的功能,它允许我们在对一个对象进行操作时,自动处理与其关联的对象。级联删除(Cascade Delete)就是其中之一,当删除一个对象时,会根据配置自动删除与之...
3.3、Hibernate级联关系(Av839011656,P3).mp4
这意味着当你保存或更新一个实体时,与其关联的实体也将被保存或更新,但在删除实体时不会执行级联操作。 4. **delete**:仅在删除实体时执行级联操作。当你删除一个实体时,与之关联的所有实体也将被删除。 5. **...
Ajax+struts+hibernate实现级联菜单 Ajax+struts+hibernate实现级联菜单 Ajax+struts+hibernate实现级联菜单
级联关系在Hibernate中是指当一个实体发生某种操作(如保存、更新、删除)时,是否会影响到与之相关联的其他实体。通过配置级联关系,我们可以控制这些关联实体的行为。 1. **一对多(OneToMany)**:在数据库中,...
而级联(Cascading)则是Hibernate中处理关联对象的一种策略,它定义了当一个实体被保存、更新或删除时,与之关联的其他实体应该如何处理。 【描述】: Hibernate中的范型主要体现在SessionFactory、Session、...
"级联_级联失效 代码"则表明这个压缩包包含了级联失效的程序代码,这些代码可能是由MATLAB编写,用于仿真和分析网络中的级联失效现象。 "级联失效代码"是实际的程序源码,可能包括了各种算法,如故障传播模型、网络...