多对多数据插入,当创建其中多的一端,把另一个多的一端关联进去,当时一直没有把数据插入到中间表中,也不报错,压根没执行插入语句,最后发现是Replygroup的映射文件的inverse="true",因为我是从replygroup这段插入数据而inverse有被设置为true所以一直无法插入到中间表中。后来将其放到关联表中就行了
Service中保存数据的代码段,其中teacherIds是教师的id数组
public void add(Replygroup replygroup, String[] teacherIds) {
for(String id : teacherIds){
Teacher teacher = new Teacher(id);
model.getTeachers().add(teacher);
}
replygroupDao.save(replygroup);
}
表Replygroup
public class Replygroup implements java.io.Serializable {
其他属性略去,get,set略去
private Set teachers = new HashSet(0);
表 Teacher
public class Teacher implements java.io.Serializable {
其他属性略去,get,set略去
private Set<Replygroup> replygroups = new HashSet<Replygroup>(0);