hibernate保存throw erro:BL错误:批量更新从update [0]返回意外的行数;实际行数:0;预期:1

时间:2018-05-21 14:23:04

标签: hibernate

我有一对一的亲子关系

父类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"/>

Child 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”

因为它没有找到要更新的子行,这是真的。 所以错误是预期的。

这是我们可能正在更新表中没有子对象的对象的商业案例吗?

我该如何解决?

我需要插入子实体+更新父实体,其中父记录已存在于主表中,子记录从子表中丢失。

1 个答案:

答案 0 :(得分:0)

将dynamic-update =“ true”添加到休眠映射xml对我有用