当前位置: 代码迷 >> J2EE >> 请问EJB Persistence高手 Many-To-Many 怎么只更新主表和中间表
  详细解决方案

请问EJB Persistence高手 Many-To-Many 怎么只更新主表和中间表

热度:51   发布时间:2016-04-22 01:02:14.0
请教EJB Persistence高手 Many-To-Many 如何只更新主表和中间表
一个Teacher 一个Student 表,多对多关系,关联表Teacher_Student
想要实现下面这个功能该怎么配置呢
  1、创建一条Teacher的数据记录,并在Teacher_Student中间表插入关联数据,但是Student数据是不需要操作的。
  2、根据TeacherID 删除Teacher_Student中间表数据。

自己找了好久,没有找到合适的资料,尝试着不通的配置也没有找到出路,

部分代码如下,但是
Teacher类:Annotation
@ManyToMany(cascade = CascadeType.REFRESH, fetch = FetchType.LAZY)
@JoinTable(name = "Teacher_Student", 
joinColumns = { @JoinColumn(name = "TeacherID", referencedColumnName = "TeacherID") }, 
inverseJoinColumns = { @JoinColumn(name = "StudentID", referencedColumnName = "StudentID") })

Student类:Annotation
@ManyToMany(cascade = CascadeType.REFRESH, fetch = FetchType.LAZY, mappedBy = "teachers")



------解决方案--------------------
Java code
long[] studentIds = 。。。List<Student> list = new ArrayList<Student>();for(long id : studentIds){  list.add(em.find(Student.class,id);}teacher.setStudents(list);
  相关解决方案