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万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章