zoukankan      html  css  js  c++  java
  • Hibernate学习

    一、Hibernate与触发器协同工作

      Hibernate与数据库中的触发器协同工作,会造成两类问题

    ----触发器使Session的缓存中的持久化对象与数据库中对应的数据不一致:触发器运行在数据库中,它执行的操作对Session是透明的

    ----Session的Update()方法会盲目的激发触发器:无论游离对象的属性是否发生变化,都会执行update语句,而update语句会激发数据库中相应的触发器

    解决方案:

      1、在执行完Session的相关操作后,立即调用Session的flush()和refresh()方法,迫使Session的缓存与数据库同步(refresh())方法重新从数据库中加载对象

        2、在映射文件的<class>元素中设置select-before-update属性:当session的update或者saveUpdate方法更新一个游离对象的时候,会先执行Select语句,获得当前游离对象在数据库中的最新数据,只有在不一致的情况下才会执行update语句。

  • 相关阅读:
    Slf4j框架的用法
    常用框架介绍
    Spring整合Kafka(Spring-Kafka)
    Java并发容器
    kafka多线程消费
    kafka简介
    kafka-clients介绍
    windows搭建kafka
    rocketmq-client使用
    Window搭建部署RocketMQ
  • 原文地址:https://www.cnblogs.com/sunfie/p/4382182.html
Copyright © 2011-2022 走看看