Hibernate知识点总结

xiaoxiao2021-02-28  67

1,ID生成策略  sql servicesql  使用identity     orcale  DB2 使用 squence      跨平台数据库 可以定义为 auto 会根据数据库的不同 使用identity 或者 队列 生成id   也可定义为 table类型     定义 Jpa 的 table类型   如: @Javax.persistence.TableGenerator (   name='以一个名字 在id那使用'   table=‘定义查询时的表名’   pkcolumnName = “key列的名字”   valuecolumnName=“value列的名字”   pkcolumnvalue=“key列的值”   allocationSize=1 每次加一 )   2,联合主键 需要把要联合的字段设置成一个新的类 有三种方法       1 @Embeddable @id  2,@EmbeddedID   3,@id 、@idClass   3,sessionFactory 连接数据库 打开session 有两种方法:        1,opensession : 每次都是一个新的session 2,getCurrentSession :从上下文找sesison 如果有用旧的如果没有 用新的          区别:opensession 需要close   getCurrentSession 自动close;getCurrentSession :界定边界    4,hibernate 的上下文, 可能是线程中的 可能是在jta中的          线程是数据库的Connection中找链接   jta 是分布式的布局 从application 中找 5, 主键关联     在有主键的那一方面 @Embedded(嵌入的) 6, cascade 级联 有级联更新 级联删除  还有所有 使用规范是cascade={cascadeType.ALL } 管 增删改      fetch 管级联取得  FetchType.lazy or eager //懒汉 还是恶汉 在查询的时候 7,  fetch 设置 在双向关联时 不能双边都设为eager 可以都设成lazy 也可以 在一的那一边设成eager 在多的那一边设成 lazy 8,  order by(字段 排序) 9,并发,读数据的几种情况    脏读:读了别的还没有提交的数据    不可重复读:两次读的数据不一样 ,被事务影响    幻读:插入一个数据影响了读的结果问题 10,事务隔离机制(jdbc的接口):    Mysql:支持四种    orcale:支持2中    1(hibernate 默认代码),read-uncommited (读未提交)         允许读没有提交的事务(解决不了 脏读、不可重复读、幻读)    2,read-commited (读已提交)        允许读提交的事务:(解决 脏读、解决不了 不可重复读、幻读)    4,repeatable read  (重复读)         可重复读 解决重复读的问题    8,serializable (串行化)         挨个执行 解决所有的 脏读 不可重复读、幻读) 11 ,hibernate 设置为2   hibernate.connection.isolation=2 //表示hibernate解决脏读 幻读 不可重复读 的级别为2 ------》read-commited   orcale设置的为:2  // 读提交过得事务   Mysql设置的为:4//repeatable read 可重复读      12,悲观锁 、乐观锁        考虑并发 设置read-commited   但是不可重复读   所以用悲观锁 13,hibernate load()    时候可以加锁     lockMode.None :不加锁    lockMode.read    lockMode.write    -------------hibernate 自动加以上的锁----------    lockMode.UPGrade// 会在语句上加 select * from table  where id=1111 for update 这个事务不提交 不会让其他事务改他      14,hibernate 分页       Query  query=  session.createQuery("sql语句");   query.setFirstResult(1);//设置起始行  query.setMaxResults(10);//设置每页的条数  query.list()//得到每页的数据;
转载请注明原文地址: https://www.6miu.com/read-75370.html

最新回复(0)