Posted on 2007-12-10 12:52
G_G 閱讀(1288)
評(píng)論(0) 編輯 收藏 所屬分類:
hibernate
表關(guān)系 T1oo ->ont-to-many-> T2oo (t1oo.id-t2oo.aid)
1.單條select延遲加載
????????Iterator?it?=?session.createQuery("from?T1oo?").iterate();
????????while(it.hasNext()){
????????????T1oo?t1?=?(T1oo)it.next();
????????????t1.getName();
????????}
/*運(yùn)行語(yǔ)句?n+1
這就只加載 id
Hibernate:?select?t1oo0_.id?as?col_0_0_?from?t1oo t1oo0_
此是在 t1.getName(); 延遲加載的
Hibernate:?select?t1oo0_.id?as?id0_,?t1oo0_.name?as?name0_0_?from?t1oo?t1oo0_?where?t1oo0_.id=?
Hibernate:?select?t1oo0_.id?as?id0_,?t1oo0_.name?as?name0_0_?from?t1oo?t1oo0_?where?t1oo0_.id=?
*/
2.級(jí)連查詢:
1)set排序? <set ... order-by="avg desc" ...> 從大到小
2)batch-size="10" 用法是
??? select * from t2oo? where aid in (?,?,?....)
3)
如果想忽略延遲,并有一定邏輯全部加載,這有兩中解決辦法:
1).內(nèi)連
mysql>?select???*
????->?from?t1oo?t1oo0_?inner?join?t2oo?t2ooset1_?on?t1oo0_.id=t2ooset1_.aid;
+----+-----------+----+-----+------+---------+
| id | name????? | id | avg | aid? | version |
+----+-----------+----+-----+------+---------+
|? 1 | liukaiyi? |? 1 |? 23 |??? 1 |?????? 1 |
|? 1 | liukaiyi? |? 2 |? 24 |??? 1 |?????? 1 |
|? 1 | liukaiyi? |? 3 |? 25 |??? 1 |?????? 1 |
|? 2 | liukaiyi2 |? 4 |? 26 |??? 2 |?????? 0 |
+----+-----------+----+-----+------+---------+
?
? ? ? ? Iterator?it?=?new?HashSet(session.createQuery("from?T1oo?t1?inner?join?fetch?t1.t2ooSet?t2where t2.id<=3").list()).iterator();
????????while(it.hasNext()){
????????????T1oo?t1?=?(T1oo)it.next();
????????????System.out.println(t1.getName());
????????????
????????????for(Iterator?itr=t1.getT2ooSet().iterator();itr.hasNext();?){
????????????????T2oo?t2?=?(T2oo)itr.next();
????????????????System.out.println("??"+?t2.getAvg()?);
????????????}
????????}
結(jié)果是:
Hibernate:?select?t1oo0_.id?as?id0_,?t2ooset1_.id?as?id1_,?t1oo0_.name?as?name0_0_,?t2ooset1_.version?as?version1_1_,?t2ooset1_.avg?as?avg1_1_,?t2ooset1_.aid?as?aid1_1_,?t2ooset1_.aid?as?aid0__,?t2ooset1_.id?as?id0__?from?t1oo?t1oo0_?inner?join?t2oo?t2ooset1_?on?t1oo0_.id=t2ooset1_.aid?where?t2ooset1_.id<=3
liukaiyi
??24
??23
??25