簡體   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