0

现在我正在使用 spring-data-jpa & hibernate。我想从课程中删除一个 courseDetail,但是在我在下面运行我的代码之后 courseDetail 仍然在数据库中。

谁能告诉我这是怎么发生的?

提前致谢。

@Transactional(readOnly = false)
public void deleteCourseDetail(Long id, Long courseId) {
    Course course = courseDao.findOne(courseId);
    CourseDetail courseDetail = courseDetailDao.findOne(id);
    System.out.println(course.getCourseDetails().size());
    course.getCourseDetails().remove(courseDetail);
    System.out.println("after: " + course.getCourseDetails().size());
    courseDao.save(course);
}

@OneToMany(mappedBy = "course", fetch = FetchType.LAZY, cascade = {CascadeType.ALL})
public List<CourseDetail> getCourseDetails() {
    return courseDetails;
}

现在它在我添加 courseDetailDao.delete(id); 后工作 保存方法后面。但为什么?

4

1 回答 1

1

您应该将“删除孤儿”作为级联类型。

如果不是,删除一个条目仅仅意味着删除和courseDetails之间的关系。这并不意味着从数据库中删除 courseDetailCourseCourseDetail

于 2012-11-21T07:33:05.783 回答