0

在我的休眠应用程序中,我有 Timetable(parent) classtable(child) 是他们的。

我的第一个操作是插入时间表并使用这个时间表插入许多类表。就像一对一关系。

但我面临的问题是:首先插入时间表和插入类表,然后再插入时间表和类表............等等..

但我的意图只是一个时间表和许多类表。

听到是我的代码...在时间表中

@OneToMany(mappedBy = "timetable",cascade={CascadeType.ALL})
    private Set<ClassTableVO> classtable;

和类表

@ManyToOne(cascade={CascadeType.ALL})
    @JoinColumn(name = "COURSE_TABLE_ID")
    private TimetableVO timetable;

如果我们将其删除(cascade={CascadeType.ALL}),则会出现异常,例如object references an unsaved transient instance 请帮助我..

Edit:

在我的休眠中,我正在使用 JPA EntityManager 类

userDAO.createEvent(timetableVO);//this loop only one time executed 
------
-----
for(---){
userDAO.createClassTable(classTable);
}

以上方法在两种方法中都有两行代码..

entityManager.merge(classTable);//
entityManager.flush();
4

1 回答 1

0

当你做一个TimeTableVO.addClassTable(ClassTableVO ct)记得设置ClassTableVO.timetable

public void TimeTableVO.addClassTable(ClassTableVO ct){
  if(classtable.add(ct)){
    ct.setTimetable(this);
  }
}

所以链接是正确的设置器,Hibernate 知道如何在保存时正确级联对象

于 2013-08-03T07:13:40.523 回答