文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>Hibernate 经典方案

Hibernate 经典方案

时间:2010-10-12  来源:菊次郎

  1. 每个类都要有一个ID来区分对象的
  2. <property name="current_session_context_class">thread</property>这个配置将当前的Session绑定到当前的thread上, 但是, 还要考虑Session的开始和结束, 第一次的getCurrentSession就开始了, 然后被绑定到当前的线程. 当事务结束, Hibernate就把这个Session从当前thread上剥离掉. 这就是一种线程绑定模型
  3. 记住: 不要每一次数据库操作都用一个新的Hibernate Session. 每一次操作一个Session都是一个反模式.
  4. <property name="show_sql">true</property>配置了是否显示sql. 这是一个经典的参数开关
  5. <property name="hbm2ddl.auto">create</property> 配置了一个单元测试会用到的场景. Create的含义是在创建SessionFactory的时候, 从schema中drop掉所有的表, 然后再创建它们.
  6. 再做Hibernate的设计的时候, 要考虑到关联的方向性, 有的不必要的方向, 应该去掉这样的方向性.
  7. 关于对持久化对象的修改, 会自动回刷到数据库的原理:

    Hibernate监视任何对持久化对象(绑定在Session上的对象)的变化, 并在后台上使用隐式的方式执行sql. 而同步内存状态和数据库状态的过程, 通常只在单元操作结束的时候发生, 这叫做Flush

  8. Session-per-request模式:

    在每个sevlet中只使用一个session, 代码结构:

    Try{

        Session.beginTransaction();

        // .. 业务逻辑

        Session.getTransaction().commit();

    }Catch(Exception ex){

        Session.getTransaction().rollback();

    }

     

    这样会把事务的边界处理都放到了servlet中了, 可以使用一个过滤器来完成, 这样就又引入了一个模式: Open Session in View

相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载