1
나는이 코드를 실행하려고 할 때, 기업이 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'객체에 대한 모든 변경 사항을 저장하기 전에 목록에서 삭제하려고합니다. –