有如下三个实体类:
User类:
@Entity
@Table(name = "user_")
public class User {
private int id;
private String username;
         private Set<User> friends = new HashSet<User>();
         @Id
@Column(name = "id_")
@GeneratedValue(strategy = GenerationType.IDENTITY)
public int getId() {
return id;
} public void setId(int id) {
this.id = id;
} @Column(name = "username_", length = 20)
public String getUsername() {
return username;
} public void setUsername(String username) {
this.username = username;
}
@ManyToMany
@JoinTable(name = "friend_", 
joinColumns = { @JoinColumn(name = "userid_") }, 
inverseJoinColumns = { @JoinColumn(name = "friendid_") })
public Set<User> getFriends() {
return friends;
} public void setFriends(Set<User> friends) {
this.friends = friends;
}
}
Bulletin类:
@Entity
@Table(name = "bulletin_")
public class Bulletin {
private int id;
private String title;
         private User user;
         @Id
@Column(name = "id_")
@GeneratedValue
public int getId() {
return id;
} public void setId(int id) {
this.id = id;
} @Column(name = "title_", length = 30)
public String getTitle() {
return title;
} public void setTitle(String title) {
this.title = title;
}
         @OneToMany
@Column(name = "userid_")
public User getUser() {
return user;
} public void setUser(User user) {
this.user = user;
}
}
这里有三张数据库表
1。user_表(id_,username_)2。bulletin_表(id_,title_,userid_)3。friend_表(id_,userid_,friendid_)
这里想在删user_表中的一条记录时,同时删除bulletin_(userid_="条件")和friend_表中的(userid_="条件"和friendid_="条件"),求高手帮忙,最好能在我代码的基础上改下,先谢了。在能解释下就更好了#11

解决方案 »

  1.   

    你做了映射了吧,很久没玩hibernate,你配置他们的一对多等关系,在删除user里面的一个内容会把相应的全部删掉的。配置忘记了,思路绝对正确
      

  2.   

    如果非要使用 映射 当我没说我一般是 在service层 调用不同DAO的 DELETE方法 实现对多表的删除每个表只需要建立外键字段不需要实际的外键关系只需要将数据库事务配置在service层
      

  3.   

    你是说在service层里面在删除用户里先查看数据库是否有对该用户的引用。如果有,先删除引用关系的表的数据,在删用户吗?这种方法企业用的多不多
      

  4.   

    在hibernate类配置一下,就可以级联删除了,网上很多的