zoukankan      html  css  js  c++  java
  • hibernate要点

    ***在*.hbm.xml文件中加入自建表语句
    <property name="hbm2ddl.auto">update</property>
    
    ***在*.hbm.xml文件中加入如下BEAN的属性:
    *作用是让数据库不再改一个字段值更新全部的字段,而是改一个字段便更新一个字段,不改就不更新了
    <class name="com.cyjch.hibernate.User" dymamic-update="true">
    
    ***提交session时,
    *用merge()时意为合并一个对像数据库
    *先SELECT 再去比较 现有的对象,不同时更新
    
    ***用HQL语句不用以上的更新,效率高些
    
    ***clear() 无论是load还是get,都会先查找缓存(一级缓存),如果没有,才会去数据库中查找,调用clear()可以清存缓存
    
    ***flash() 强制commit() 更新数据库
    
    
    
    Hibernate常用的关系映射
    一对多
    a)单向
    b)双向
    
    多对一
    a)单向
    b)双向
    
    多对多
    a)单向
    b)双向
    
    双向操作:双向关系在程序中要设定双向关联,还要设定mappedBy(注解)
    这样在哪一方做增删改查都不会出问题
    
    SQLQuery q = session.createSQLQuery("select * from category limit 2,4").addEntity(Category.class);
    说明:.addEntity() 意为将查出的结果交予一个对象
    
    *一级缓存和二级缓级和查询缓存
    
    1)一级缓存:Session级别的缓存
    
    2)二级缓存:SessionFactory级别的缓存,可以跨越Session存在
    
    3)打开二级缓存:
    hibernate.cfg.xml设定:
    <property name="cache.use_second_level_cache">true</property>
    <property name="cache.provider_class">org.hibernate.cache.EhCacheProvider</property>
    
    4)@Catche注解
    
    5)load默认使用二级缓存, iterate默认使用二级缓存
    
    6)list默认往二级缓存加数据,但是查询的时候不使用
    
    7)如果要query用二级缓存,需要打开查询缓存
    
    8)查询缓存设定:<property name="cache.use_query_cache">true</property>
    

      

  • 相关阅读:
    物料描述不可更新(分配组织后)
    完工任务不允许更改需求
    作业需求更改,限制车间人员只允许修改子库
    只允许更改**类型的任务需求
    车间任务移动完工时检验倒冲子库
    有库存不能停用子库存
    不允许修改标准作业需求
    PHP关于重写与重载
    面向对象的三个基本特征 封装 继承 多态
    PHP中的面向对象 中的类(class)
  • 原文地址:https://www.cnblogs.com/cyjch/p/2340148.html
Copyright © 2011-2022 走看看