如何解决如何在XML文件格式原则ORM中添加级联参数
据我了解,我需要在映射中添加一个“级联”参数。但是我的映射是XML。 我发现了很多有关它的信息,但没有结果。 放心!
Мy错误是: 通过给定的关联图找到了多个非持久的新实体:\ n \ n *通过“ Domain \ Maintenance \ Maintenance#affectedRegions”关系发现了一个新实体,该关系未配置为级联实体的持久化操作:Domain \ AffectedRegion \ AffectedRegion @ 0000000075384ba200000000535ab7f1。解决此问题的方法:在此未知实体上显式调用EntityManager#persist()或配置级联,将该关联保留在映射中,例如@ManyToOne(..,cascade = {“ persist”})。如果您找不到导致问题的实体,请实施“ Domain \ AffectedRegion \ AffectedRegion #__ toString()”以获取线索。\ n *
XML失败:
<entity name="Domain\Maintenance\Maintenance" table="maintenances" repository-class="Infrastructure\Repositories\MaintenanceRepository">
<id name="id" type="integer" column="id">
<generator strategy="AUTO"/>
</id>
<field name="name" type="string"/>
<one-to-many field="affectedRegions" target-entity="Domain\AffectedRegion\AffectedRegion" mapped-by="Domain\Maintenance\Maintenance" />
<cascade>
<cascade-merge/>
</cascade>
</entity>
<entity name="Domain\AffectedRegion\AffectedRegion" table="affected_regions" repository-class="Infrastructure\Repositories\AffectedRegionRepository">
<id name="id" type="integer" column="id">
<generator strategy="AUTO"/>
</id>
<many-to-one field="region" target-entity="Domain\Region\Region" inversed-by="Domain\AffectedRegion\AffectedRegion">
<join-column name="region_id" referenced-column-name="id" />
<cascade>
<cascade-persist/>
</cascade>
</many-to-one>
<many-to-one field="maintenance" target-entity="Domain\Maintenance\Maintenance" inversed-by="Domain\AffectedRegion\AffectedRegion">
<join-column name="maintenance_id" referenced-column-name="id" />
<cascade>
<cascade-persist/>
</cascade>
</many-to-one>
<field name="vlans" type="string"/>
<field name="olts" type="string"/>
</entity>
<entity name="Domain\Region\Region" table="regions" repository-class="Infrastructure\Repositories\RegionRepository">
<id name="id" type="integer" column="id">
<generator strategy="AUTO"/>
</id>
<field name="name" type="string"/>
<field name="code" type="string"/>
<one-to-many field="affectedRegions" target-entity="Domain\AffectedRegion\AffectedRegion" mapped-by="Domain\Maintenance\Maintenance" />
</entity>
这是我的FK:
$affectedRegionTable->addForeignKeyConstraint(
$regionTable,['region_id'],['id'],['onUpdate' => 'CASCADE'],'fk_affectedRegions_region_id'
);
$affectedRegionTable->addForeignKeyConstraint(
$regionTable,['maintenance_id'],'fk_affectedRegions_maintenance_id'
);
我想建立的关系是:
维护←一对多→受影响的区域←多对一→地区
解决方法
这是答案。 添加级联参数的另一种方法:
<one-to-many field="affectedRegions" target-entity="Domain\AffectedRegion\AffectedRegion" mapped-by="maintenance">
<cascade>
<cascade-persist/>
<cascade-remove/>
</cascade>
</one-to-many>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。