Hibernate報錯:On release of batch it still contained JDBC statements

錯誤現象:Project和User使用註解多對一單向關聯(@ManyToOne)

    // Project 類
    @ManyToOne
    @JoinColumn(name = "user_id", nullable = false)
    private User user;

先new一個Project對象,並從數據庫中取出User對象放入Project對象

此時使用session.save(project)報錯:On release of batch it still contained JDBC statements


錯誤分析:由於user對象是從數據庫中取出,還緩存在session中,此時save(project)就報錯


解決辦法:配置Cascade註解就可以了

    @ManyToOne
    @Cascade(value = CascadeType.SAVE_UPDATE) // 增加該註解即可
    @JoinColumn(name = "user_id", nullable = false)
    private User user;

解決辦法二:用session.merge() 方法代替session.save() 即可

發佈了74 篇原創文章 · 獲贊 40 · 訪問量 19萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章