Re: [問題] Hibernate 多年來的疑問
※ 引述《lookjohn (《經濟狀況》赤貧)》之銘言:
: public class BeanASimple{
: private Long id;
: private String field1;
: private String field2;
: get , set ..
: }
: 這兩隻 皆指到 TableA (不管事用annotion或是ORM)..
任何情況,只要碰到有共享資源的情況下,都會有concurrency的問題
所以其實不用另外再建一個實體hibernate bean,也可以有類似的效果
常用來處理Group By 後的結果
HQL:
select new xxx.yyy.zzz.BeanASimple(id, field1, field2) /* full class name */
from BeanA
....
/* 使用HQL BeanASimple 必需有對應的Constructor */
Criteria:
List list = session.createCriteria(BeanA.class) /* 資料來源Bean */
.setProjection(Projections.projectionList()
/* 欄位對應 */
.add( Projections.property("id"), "id" )
.add( Projections.property("field1"), "field1" )
.setResultTransformer( /* 轉換到對應的class */
new AliasToBeanResultTransformer(BeanASimple.class) )
.list();
: ===
: 想請教:
: 使用語法 : "From TableA where 1=1" ; query.setMaxResults(1000);
: 在同樣10000筆的查詢之中,我使用的BeanASimple 的情況 是否優於BeanA?
: 是否下列幾個條件皆有比較好:
: 1.查詢效率
: 2.記憶體的佔用率
: 3.多人同時查詢的情況
: 這是我個人的認知,就觀念上不知是否是正確的或是有相對的謬論存在,
: 請各位大大不吝指教..:)
理論上不管各種情況,BeanASimple 的結果都會優於BeanA的
不過我會建議你試試看去比較StatelessSession跟Session 出來的差異
Stateless 不一定會比較快喔!! 還是要看你的設計
以上,只是提供你一個不另外開新的hibernate bean的參考
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.109.20.106
→
04/01 12:56, , 1F
04/01 12:56, 1F
→
04/01 12:58, , 2F
04/01 12:58, 2F
→
04/01 13:00, , 3F
04/01 13:00, 3F
→
04/01 13:02, , 4F
04/01 13:02, 4F
→
04/01 13:05, , 5F
04/01 13:05, 5F
→
04/01 13:06, , 6F
04/01 13:06, 6F
→
04/01 15:34, , 7F
04/01 15:34, 7F
→
04/01 15:36, , 8F
04/01 15:36, 8F
→
04/01 15:41, , 9F
04/01 15:41, 9F
推
04/02 21:26, , 10F
04/02 21:26, 10F
→
04/02 21:31, , 11F
04/02 21:31, 11F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 3 之 3 篇):