该用户从未签到
|
一级缓存是在事务级别或工作单元级别。hibernate默认启用一级缓存,一级缓存与session关联,如果相同的query在相同的session中执行多次,那么与该query关联的data就会缓存,一级缓存的scope是session。
Q: {/ `' Z8 Q* O
/ K, X3 d1 c8 |+ ^3 y如下面代码:- Session session = factory.openSession();7 @ r+ H& p( E. j* Y
- try {
4 m5 C( a& a4 d4 J% O, B - Book book1 = (Book) session.get(Book.class, id);' L- B F$ L# }- K- M g
- Book book2 = (Book) session.get(Book.class, id);2 A& N, @& W& i# [' Q
- } finally {9 I5 Q+ a( _) q; z# E
- session.close();6 y9 S8 d% t/ s6 z6 K
- }
复制代码 - e% u+ I( I/ S5 n1 P+ p
执行该代码,只会显示一条sql语句。
c: P# P+ s) b' S5 W: F6 ?; I
+ I, _, G( r& c# t- R( N3 Y0 u' r5 T2 F0 t5 p, n7 L0 i# m
如果执行下面代码:- Session sess=sf.openSession();
# }1 I+ V+ Y8 `; j3 y: e1 d - Book b=(Book) sess.get(Book.class, "PBN123");
: V* R* F3 F+ k ?' F - assertEquals("spring Recipes", b.getName());( O, _) V2 j: x) u1 l: j+ e# {' Y& M
- sess.close();
& N% r# s( s" k/ r% Y- P8 } - Session sess1=sf.openSession();
8 a) Y1 j3 P; V1 b: \, u* m - Book b1=(Book) sess1.get(Book.class, "PBN123");
4 `& q P+ Q+ Q, ^ - assertEquals("Spring Recipes", b1.getName());
" m8 Z4 S0 k3 u/ l( q* [+ e - sess1.close();
复制代码 就会显示2条SQL语句
2 |5 S; e8 ?7 j2 T3 A/ Y& J- Hibernate: select book0_.ISBN as ISBN1_0_0_, book0_.NAME as NAME2_0_0_, book0_.PUBLISHDATE a
" ~1 O x# L7 u7 M - s PUBLISHD3_0_0_, book0_.PRICE as PRICE4_0_0_, book0_.PUBLISHERCODE as PUBLISHE5_0_0_, publi
* d) n$ c- e- k i - sher1_.CODE as CODE1_1_1_, publisher1_.NAME as NAME2_1_1_, publisher1_.ADDRESS as ADDRESS3_1
( m$ i2 V' L" x* O3 ~1 [" Z9 u1 M - _1_ from BOOK book0_ left outer join PUBLISHER publisher1_ on book0_.PUBLISHERCODE=publisher7 x# B7 ?, l6 a7 h% T5 Y3 r% M
- 1_.CODE where book0_.ISBN=?5 l! A* [) M# t: U1 B
- Hibernate: select book0_.ISBN as ISBN1_0_0_, book0_.NAME as NAME2_0_0_, book0_.PUBLISHDATE a6 S* c8 n( B: m1 }" i
- s PUBLISHD3_0_0_, book0_.PRICE as PRICE4_0_0_, book0_.PUBLISHERCODE as PUBLISHE5_0_0_, publi4 T! n( f% K8 h1 i1 X! Q6 E! t
- sher1_.CODE as CODE1_1_1_, publisher1_.NAME as NAME2_1_1_, publisher1_.ADDRESS as ADDRESS3_1
7 z) x; [* {+ J4 I8 x* s$ f1 G' T/ N - _1_ from BOOK book0_ left outer join PUBLISHER publisher1_ on book0_.PUBLISHERCODE=publisher0 T7 l0 ?' Z) x+ E/ s
- 1_.CODE where book0_.ISBN=?
复制代码 $ t. s( m. y: \7 B. M! ?4 _
+ [* @- x) V- w
9 y3 `/ ^2 ~3 Y4 U# h
# A" R8 s+ ~3 m& e5 p( H |
|