繁体   English   中英

如何更新实体休眠?

[英]How update Entity hibernate?

我写了一个简单的 Java 项目,您可以在其中创建时间表,但是我在更新 Course 实体时遇到了问题。 我正在尝试编写可以将 Lecture 添加到 Course 的函数:关系 OneToMany。 首先,我运行 .read 函数从数据库中获取 Lecture,然后是 Course,然后通过 .getLectures().add() 我想将 Lecture 添加到我的 Course 类所具有的 Set 然后通过 .update() 函数我尝试更新数据库中有关课程的信息,但没有任何反应。 休眠只做选择请求。 我的代码:

    Lecture lecture = lectureDao.read(lectureId);
    Course course = courseDao.read(courseId);
    course.getLecture().add(lecture);
    courseDao.update(course);

    @Override
    public Course read(int id) {
        transaction = currentSession().beginTransaction();
        Course course = currentSession().get(Course.class, id);
        currentSession().close();
        return course;
}

  @Override
public void update(Course course) {
    if (transaction == null) {
        try {
            transaction = currentSession().beginTransaction();
            currentSession().update(course);
            currentSession().flush();
            transaction.commit();
        } catch (Exception e) {
            e.printStackTrace();
        }
        currentSession().close();
    }
}

很难确定,因为我们没有看到实体代码。 那是单向映射还是双向映射? 也许您忘记了 @CASCADETYPE.PERSIST 注释? 我还建议在 Course.java 中创建一个方法来向课程添加新的 Lecture,例如

public void addNewLecture (Lecture lecture) {
If (lectureList == null){
lectureList = new ArrayList<>();
} 
this.lectureList.add(lecture);
lecture.setCourse(this);
} 

抱歉格式不正确,但我现在正在使用 Android 应用

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM