日期:2014-05-16  浏览次数:20424 次

hibernate学习笔记第8讲-session_flush-数据库隔离级别

?

Session? flush:

默认在commit之前执行flush

Session? flush方法主要做了两件事

?????????? 1清理缓存

?????????? 2 执行sql

Session flush 在什么时候执行:

?????????? 1 默认在事务提交commit

?????????? 2, 显示调用。

???? 3 在执行查询前,如 iterate

hibernate按照save(insert),updatedelete顺序提交相关操作

?

?

数据库隔离级别:


?

大部分数据库采用 read commited

Mysql 默认采用repeatable read

脏读:事务还没提交,就可以读到,此时如果事务回滚,就出现脏数据。

不可重复读:第一次读的为A,之后另一个人修改为B,此时再读,显示为B,与第一次读的不同,出现不可重复读。解决办法:在第一次读的时候锁住该条记录,别人修改不了。

幻读:第一次查询读出5条数据,之后别人添加记录,当第二次读的时候,变成10条记录。此时为幻读。

?

?

/**

?* 测试uuid主键生成策略

?*/

tx = session.beginTransaction();

??????????????????