私はこのコードを実行しようとするとき、私は、エンティティがDashboardPageItem
のリストが含まれDashboardPage
と呼ばれる持っている:私は、このエラーメッセージが表示されます削除は、データベースにそれを削除せずに協会からオブジェクトを削除
for(DashboardPage dp : dashboard.getPages()){
if(dp.getIndex() == dashboardPage.getIndex()){
dp.getDashboardPageItems().clear();
Iterator<DashboardPageItem> itDashboardPageItem = dp.getDashboardPageItems().iterator();
while (itDashboardPageItem.hasNext()) {
DashboardPageItem dpi = itDashboardPageItem.next();
itDashboardPageItem.remove();
}
}
}
:
をdeleted object would be re-saved by cascade (remove deleted object from associations): [com.dashboard.entity.DashboardPage#22]
私は同様の問題について尋ねたところ、session.delete()
を使用する必要があることがわかりましたが、これはデータベースからオブジェクトを削除し、リストから削除したいだけです。
これは私のクラスのHBMです:
DashboardPage:
<class name="DashboardPage" table="t_dashboard_page_dpa">
<id name="id" column="dpa_id">
<generator class="native"/>
</id>
<property name="name" column="dpa_name"/>
<property name="index" column="dpa_index"/>
<property name="model" column="dpa_model"/>
<many-to-one name="dashboard"
column="fk_das_id"
foreign-key="das_id"
not-null="false"
lazy="false"/>
<bag table="t_dashboard_page_item_dpi" name="dashboardPageItems" inverse="true" lazy="true" cascade="all,delete-orphan">
<key column="fk_dpa_id" not-null="true" unique="false" foreign-key="dpa_id"/>
<one-to-many class="com.lomaco.cloud.DashboardPageItem"></one-to-many>
</bag>
</class>
DashboardPageItem:
<class name="DashboardPageItem" table="t_dashboard_page_item_dpi">
<id name="id" column="dpi_id">
<generator class="native"/>
</id>
<property name="position" column="dpi_position"/>
<many-to-one name="dashboardPage"
column="fk_dpa_id"
foreign-key="dpa_id"
not-null="false"
lazy="false"
cascade="all"/>
<many-to-one name="widget"
column="fk_wid_id"
foreign-key="wid_id"
not-null="false"
lazy="false"/>
</class>
どのように私はこの問題を解決することができますか?
編集:
このコードは、私がやっているからほんの一部ですので、私は、データベースは、私が行った変更の影響を受けることにしたくないが、別の部分で、私はsession.save(dashboard)
を呼び出したいです私が作ったすべての変更を保存します。その後、
この場合、session.saveOrUpdate(ダッシュボード)を呼び出すと、削除は機能しません。 –
私は参照してください。あなたの投稿に基づいて、データベースからではなくメモリから削除したいだけです –
はい、私は 'dashboard'オブジェクトに加えられたすべての変更を保存する前にリストから削除しようとしています。 –