hibernate - 休眠保存抛出错误:BL错误:批量更新从更新[0]返回了意外的行数;实际行数:0;预期:1
问题描述
我有一对一类型的父子关系
父类 hbm.xml Pipeline_Facility_Id_Seq
<many-to-one name="pipelineData" class="com.db.loud.dto.gctpipeline.PipelineData" column="LOAN_ID" not-null="true"/>
<one-to-one name="shippingFacilityAsset" class="xxx.ShippingFacilityAsset" cascade="all"/>
子 hbm.xml
<class name="com.db.loud.dto.gctpipeline.ShippingFacilityAsset" table="Shipping_Facility_Asset" >
<id name="facilityId" type="long">
<column name="FACILITY_ID" not-null="true" sql-type="NUMBER" />
<generator class="foreign">
<param name="property">pipelineFacility</param>
</generator>
</id>
<one-to-one name="pipelineFacility" class="com.db.loud.dto.gctpipeline.PipelineFacility" constrained="true"/>
现在更新它时抛出错误“BL错误:批量更新从更新[0]返回了意外的行数;实际行数:0;预期:1”
因为它没有在 child 中找到要更新的行,这是真的。所以这个错误是预期的。
这是我们可能正在更新表中不存在子对象的对象的业务案例?
我该如何解决?
我需要插入子实体+更新父实体,其中父记录已存在于主表中,而子表中缺少子记录。
解决方案
将 dynamic-update="true" 添加到休眠映射 xml 对我有用
推荐阅读
- angular - 默认选择控制选项上的 ng-valid 类
- python - 为什么 print 语句将输出作为 None 而不是排序列表?
- python - Pandas:添加满足条件的元素的渐进计数列
- javascript - 谷歌表 - 获取选定的行
- html - 类型'可观察的
' 不可分配给类型 'DataListeItem[]' - algorithm - 为什么部分正确而不是完全正确?
- php - laravel 5.6 MethodNotAllowedHttpException 在登录时验证
- javascript - 是否可以将 js 变量发送到谷歌表格?(不是表格数据)
- sql - SQL - 优先级方案
- r - Shiny反应表中的ggplot2 scale_x_date