У меня есть родитель - дочерние отношения типа один-к-одному
родительский класс 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»
, так как не удается найти строку в дочернем элементе для обновления, котораяправда.Так что ошибка ожидается.
Это бизнес-случай, когда мы можем обновлять объект, если дочерний объект отсутствует в таблице?
Как мне решить эту проблему?
Мне нужно вставить дочернюю сущность + обновить родительскую сущность, если родительская запись уже присутствует в основной таблице, а дочерняя запись отсутствует в дочерней таблице.