2013-05-31 32 views
0

我遇到问题。我有一个拥有子数据的域。我可以通过使用级联删除轻松删除它,但我的老师说我不能级联它。我的计划是当数据具有关联时,我将检索关联并将其显示给用户。到目前为止,我所使用的是使用try catch来捕获它,并且我可以在eclipse控制台上显示它。该显示器是:如何检索休眠中的关联数据

java.sql.BatchUpdateException: Cannot delete or update a parent row: a foreign key constraint fails ( EPS . EMPLOYEE_EMPLOYER , CONSTRAINT FK_EMPLOYEE_EMPLOYER_EMPLOYEE FOREIGN KEY ( EMPLOYEE_ID ) REFERENCES EMPLOYEE ( EMPLOYEE_ID ))

由于它抛出一个Ajax错误我这样做,说You cannot delete this record because it has associated record/s.警报。我想要更具体。

然后我不知道下一步该怎么做。我想检索所有关联的数据并显示它。请帮忙。

+0

“但我的老师说,我不能级联它”:为什么? “父母”和“孩子”之间的关系如何? –

回答

3

我不太明白你的“解决方案”。您正在讨论删除一个实体及其所有子实体。检索数据并显示给用户与它无关。

首先,我不确定为什么你的“老师”告诉你不要级联。这是利用级联的完美有效和适当的情况。考虑使用delete-orphan,它会为你删除子实体删除。

如果你真的不想做级联。你需要做的是手动进行级联:如果你需要删除一个实体,首先得到它的所有孩子,首先删除孩子(可以在这里考虑刷新),然后删除实体本身。事实上与Hibernate没有多大关系。这是您在使用数据库时遇到的正常问题。

+0

我认为他不想级联但告诉用户存在依赖关系。 –