我是靠谱客的博主 端庄黑裤,最近开发中收集的这篇文章主要介绍SpringData JPA ID查询再插入异常SpringData JPA ID查询再插入异常,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

SpringData JPA ID查询再插入异常


1.问题描述:

springData JPA(hibernate)在通过ID查询数据后修改数据与ID再重新插入一条至数据库时异常,提示ID已更换。


2.解决方案:

通过entityManager获取hibernate的Session。然后清理JPA缓存,上方esignTemplate通过ID查询出结果后直接修改该对象ID会报ID改变异常(JPA通过ID判别是否为更新或保存,直接修改ID不允许)。查询缓存在hibernate->Session,即清理该对象后即可继续完成数据库写入新数据的操作


3.具体实现:

  1. 类中注入对象
    @PersistenceContext
    Private EntityManager entityManager;

  2. 通过entityManager获取session并调用evict方法清除缓存
    Sessionsession=entityManager.unwrap(Session.class);
    session.evict(esignTemplate);

最后

以上就是端庄黑裤为你收集整理的SpringData JPA ID查询再插入异常SpringData JPA ID查询再插入异常的全部内容,希望文章能够帮你解决SpringData JPA ID查询再插入异常SpringData JPA ID查询再插入异常所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(39)

评论列表共有 0 条评论

立即
投稿
返回
顶部