java中hibernate多对多的关联关系如何解除?
比如我有学生表课程表和中间表三个表对应的实体类(不必要的信息就省略了)为publicclassStudent{privateintid;privateStringname...
比如我有学生表 课程表 和中间表三个表 对应的实体类(不必要的信息就省略了)为
public class Student{
private int id;
private String name;
@Id
public int getId(){
}
//其他省略
}
}
public class Course{
private int id;
private String name;
@Id
public int getId(){
}
//其他省略
}
中间表
public class StudentCourse{
private int id;
private Student s;
private Course c;
@Id
public int getId(){
}
@ManyToOne
public Student getS(){
}
@ManyToOne
public Course getC(){
}
//其他省略
}
插入了一些数据 现在中间表结构如下
id sid cid
1 stu1 c2
2 stu1 c4
3 stu2 c1
3 stu2 c2
/省略
我现在要修改关联关系 student表和course表都没有记录要删除 只是修改关联关系 中间表要改成
id sid cid
1 stu1 c3
2 stu1 c1
3 stu2 c2
3 stu2 c4
类似这样修改 该怎么做?
表和类只能这么设计了 我也没办法 展开
public class Student{
private int id;
private String name;
@Id
public int getId(){
}
//其他省略
}
}
public class Course{
private int id;
private String name;
@Id
public int getId(){
}
//其他省略
}
中间表
public class StudentCourse{
private int id;
private Student s;
private Course c;
@Id
public int getId(){
}
@ManyToOne
public Student getS(){
}
@ManyToOne
public Course getC(){
}
//其他省略
}
插入了一些数据 现在中间表结构如下
id sid cid
1 stu1 c2
2 stu1 c4
3 stu2 c1
3 stu2 c2
/省略
我现在要修改关联关系 student表和course表都没有记录要删除 只是修改关联关系 中间表要改成
id sid cid
1 stu1 c3
2 stu1 c1
3 stu2 c2
3 stu2 c4
类似这样修改 该怎么做?
表和类只能这么设计了 我也没办法 展开
1个回答
2015-01-29
展开全部
我一般用@manytomany 标签,student 类有一个猛仔list记录课程,伏知族设置为manytomany cascadetype 加上merge,需要更新时直接操作课程记录就可以。你这样的缺弊设计我觉得反而麻烦了。或者直接用sql更新吧
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询