Hibernate级联删除问题

战天诛 发布于 2014/11/30 16:13
阅读 535
收藏 0

正在学习,在做一个SSH框架的百度贴吧系统

里面暂时只设置了用户、贴吧、帖子三个类

用户类里我是这么写的:

private Set<Tieba> favourateTiebas = new HashSet<Tieba>(); // 用户喜欢的贴吧



然后这是对与贴吧关系的描述:
@ManyToMany(cascade = CascadeType.REFRESH)
	@JoinTable(name = "user_tieba", inverseJoinColumns = @JoinColumn(name = "tieba_name") // 可以理解为“跟被维护端的外键的定义”
	, joinColumns = @JoinColumn(name = "user_name"))
	// 注意这个name是没有提示的
	public Set<Tieba> getFavourateTiebas() {
		return favourateTiebas;
	}



贴吧类:
private Set<User> thisTiebasUsers = new HashSet<User>(); // 本贴吧的用户



对与用户关系的描述:
@ManyToMany(cascade = {CascadeType.REFRESH} // 笔记:级联删除基本用不到
	, mappedBy = "favourateTiebas")
	public Set<User> getThisTiebasUsers() {
		return thisTiebasUsers;
	}



数据库中是自动生成三个表:用户、贴吧、用户_贴吧

我现在的问题就是,我调用删除用户的service,可以正常删除用户,可以自动正常删除用户发的帖子,可以自动删除用户_贴吧表里的记录

但是我调用删除贴吧的service,就不行了,显示:

HTTP Status 500 - ORA-02292: 违反完整约束条件 (SYSTEM.FK735BF35BB2E99AAA) - 已找到子记录

我查了一下,这个约束就是用户_贴吧表里对贴吧的外键约束,请问怎么解决?为什么用户可以删除贴吧不行呢?
加载中
0
十六子
十六子
数据库的关系图有吗?
0
wms1
wms1
尽量少去使用 @ManyToMany,它存在比较多的问题,关系很难维护
返回顶部
顶部