org.springframework.dao.DataIntegrityViolationException: could not delete: [com.osiit.prgName.moduleName.bean.Bumen#ff80808132146106013214632e0a0001]; nested exception is org.hibernate.exception.ConstraintViolationException: could not delete: [com.osiit.prgName.moduleName.bean.Bumen#ff80808132146106013214632e0a0001]
这个是dao
public void delete(Bumen persistentInstance) {
log.debug("deleting Bumen instance");
try {
getHibernateTemplate().delete(persistentInstance);
log.debug("delete successful");
} catch (RuntimeException re) {
log.error("delete failed", re);
throw re;
}
}
这个是配置文件
多对一的
一对多的
这个问题怎么解决呀,。烦死了
数据库操作,最好不要建立主外键,因为DBA管理员维护起来不方便,删除主表的同时,得保证没有从表引用,否则就出错,建议还是多写SQL语句操作,Hibernate不是万能的,且数据量大时,性能会下降,JAVA程序操作数据库,本质是:向数据库发送SQL语句,让他执行,你想想直接写SQL语句 和利用HIbernate封装SQL,谁的效率高
delete 后调用[code="java"] getHibernateTemplate().flush();[/code] 试试
顺便把执行 delete 对应的SQL语句(由HIBERNATE生成的)贴出来瞧瞧
delete之前你传入的javabean是怎么得到的,有过哪样的操作
说明一下出问题前后你做了哪些操作
改为
试试