开发者社区> 问答> 正文

java 是spring框架,Dao继承CrudRepository- java报错

"

java 是spring框架,Dao继承CrudRepository,不知道是spring还是CrudRepository,

save日志的时候会保存更改过的持久化实体,这个实体是更改过,但是我不想更新,不知道哪的问题

"

展开
收起
montos 2020-06-04 14:01:11 939 0
1 条回答
写回答
取消 提交回答
  • "

    hibernate在每个session里都会做些处理,比如把查询过的对象缓存起来什么,这个时候这些对象的实例是和数据库保持关联的,hibernate会记录session生命周期内所有缓存对象的操作过程,最后都会反映到数据库去,也就是所谓的托管状态,所以才会有自动更新这种问题。只要每次都把查询到的对象用evict(或clear)清除(记得,是每次),那么就不会有托管状态的entity,也就不会有自动更新,但这不会影响(应该)update(或saveOrUpdate)操作,evict只是清楚实例与数据库的关联而已,不是清楚实例本身。 

     

    修改:baseDao.getCurrentSession().evict(arg0)



    不知道你的是不是这个原因,希望对你有用

    "
    2020-06-04 14:35:47
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
云栖社区特邀专家徐雷Java Spring Boot开发实战系列课程(第20讲):经典面试题与阿里等名企内部招聘求职面试技巧 立即下载
微服务架构模式与原理Spring Cloud开发实战 立即下载
阿里特邀专家徐雷Java Spring Boot开发实战系列课程(第18讲):制作Java Docker镜像与推送到DockerHub和阿里云Docker仓库 立即下载