0

我正在使用 spring MVC 和休眠框架。我有 2 个表。它们是 Team 和 Releases。它有一个一对多的映射。我可以从 Releases 中删除重新编码,但是当我从 Team 中删除时,它给出了以下错误

HTTP Status 500 - Request processing failed; nested exception is org.springframework.dao.DataIntegrityViolationException: 
Could not execute JDBC batch update; SQL [delete from Teams where teamID=?]; 
constraint [null]; 
nested exception is org.hibernate.exception.ConstraintViolationException: 
Could not execute JDBC batch update
4

3 回答 3

2

首先,您需要从 Releases 中删除所有引用您需要删除的 Team 的记录,然后是 Team。

或使用

@OneToMany(orphanRemoval=true)
于 2013-11-14T07:57:20.560 回答
0

由于您的 table 与 tableTeams具有一对一的映射Releases,因此异常清楚地表明您违反了完整性约束。您的查询

delete from teams where id=?

尝试从表中删除记录Teams,但由于您有一个到的映射Releases,您首先需要删除表中引用的行,teamID然后ReleasesTeams表中删除相应的行。

于 2013-11-14T08:03:56.437 回答
0

你用的hibernate方法是错误的~!那个代码:“hibernate.update(sql);”。

于 2013-11-14T08:13:34.633 回答