<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 165, comments - 198, trackbacks - 0, articles - 1
      BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

    沒有玩轉的 hibernate hql 檢索

    Posted on 2007-08-24 16:36 G_G 閱讀(597) 評論(0)  編輯  收藏 所屬分類: hibernate
    ??? 1。文件的映射。由于使用 MyEclipse(傻瓜版^_^) 所以 hibernate工具(extensions,Middlegen,tools等)一直沒好好研究這就不獻丑了。
    ??? 2。Criteria
    ??? ?? 1)查詢條件通過 Criteria.add 添加 Expression 用于描述條件
    ??? ??? ??? ??? Expression.( and or like in le lt ..... )
    ??? ?? ?? ?? ?? 參見: Criteria查詢
    ??? ?? 2)criteria.setFirstResult(100);
    ??? ??? ? criteria.setMaxResults(20); //檢索范圍
    ??? ??? ? criteria.addOrder(Order.asc("name")); //排序

    ??? ??? ? .add( Expression.sql("lower($alias.name) like lower(?)", "Fritz%", Hibernate.STRING)?? //直接嵌入SQL
    ??? ?? 3)
    Cat cat = new Cat();
    ??? ?? ?? ....

    ??? ???? List results = session.createCriteria(Cat.class).add( Example.create(cat) ).list(); //根據(jù)對象查詢
    ??? ?
    ??? 3。HQL 完全面向對象的,具備繼承、多態(tài)和關聯(lián)等特性。
    ??? ?? 1)參見: HQL
    ??? ?? 2)內(nèi)連接,inner join
    ??? ????? 左外連接,left outer join

    ??? ????? 右外連接,right outer join
    ?
    ??? ??? ? http://www.hibernate.org/hib_docs/reference/en/html/queryhql.html
    ??? ?? ?? 代表性的語句
    ??? ?
    Hql.hbm.xml
    ????????
    <set?name="fkSet"?inverse="true">
    ????????????
    <key?column="id"/>
    ????????????
    <one-to-many?class="Fk"/>
    ????????
    </set>
    SQL
    alter?table?fk?add?constraint??FK_hf?foreign?key(id)?references?hql(id)

    mysql> select * from hql;
    +----+----------+
    | id | name???? |
    +----+----------+
    |? 0 | liukaiyi |
    |? 1 | heha???? |
    +----+----------+
    2 rows in set (0.00 sec)

    mysql> select * from fk;
    +----+------+
    | id | name |
    +----+------+
    |? 0 | yy?? |
    |? 1 | xx?? |
    +----+------+
    2 rows in set (0.00 sec)


    //簡單的 結果: 2? liukaiyi:heha
    ????????Query?qu?=?se.createQuery("select?h.name?"?+
    ????????????????????????????????????????
    "?from?Hql?h?,?Fk?f"?+
    ????????????????????????????????????????
    "?where?h.id?=?f.id"?);
    ????????List?list?
    =??qu.list()?;
    ????????tr.commit();
    ????????System.out.println(?list.size()?);
    ????????System.out.println(?list.get(
    0)+":"+list.get(1)?);


    //給出對象 結果 : heha
    Query?qu?=?se.createQuery("from?Hql?h?where?h.fkSet.name='xx'");
    ((Hql)list.get(
    0)).getName()?;


    //給出Object 結果:heha xx
    Query?qu?=?se.createQuery("select?h.name,f.name?from?Hql?h?join?h.fkSet?f?where?f.name='xx'");
    List?list?
    =??qu.list()?;
    tr.commit();
    System.out.println(list.size());????
    Object[]?objs?
    =?(Object[])?list.get(0)?;
    System.out.println(?objs[
    0]?+":"+objs[1]?);

    //給出 Map? heha xx
    ????????
    ????????Query?qu?
    =?se.createQuery("select?new?map(?h.name?as?hn,f.name?as?fn)from?Hql?h?join?h.fkSet?f?where?f.name='xx'");
    ????????List?list?
    =??qu.list()?;

    ????????tr.commit();
    ????????System.out.println(list.size());????
    ????????Map?map?
    =?((Map)list.get(0));
    ????????System.out.println(?map.get(
    "hn")?);
    ????}

    //報表語句? 結果: 1

    ????????Query?qu?=?se.createQuery("select?count(*)?from?Hql?h?join?h.fkSet?f?"?+
    ????????????????????????????????????????
    "?where?h.name='heha'?and?h.id=f.id?"?+
    ????????????????????????????????????????
    "?group?by?h.name?");
    ????????List?list?
    =??qu.list()?;
    ????????tr.commit();
    ????????System.out.println(?list.get(
    0)?);

    //集合內(nèi) 結果 liukaiyi:heha
    //
    元素集(elementsindices 函數(shù)) 可以使用 any, some, all, exists, in
    //
    EG:? from Player p where 3 > all elements(p.scores)
    +----+----------+
    | id | name???? |
    +----+----------+
    |? 0 | liukaiyi |
    |? 1 | heha???? |
    |? 3 | oo?????? |
    +----+----------+

    ?? ????
    ??? ??? Query?qu?
    =?se.createQuery("select?h.name?"?+
    ????????????????????????????????????????
    "?from?Hql?h"?+
    ????????????????????????????????????????
    "?where?h.id?in?elements(h.fkSet.id)?"?);
    ????????List?list?
    =??qu.list()?;
    ????????tr.commit();
    ????????System.out.println(?list.get(
    0)+":"+list.get(1)?);


    //使用 javaBean 綁定
    Query?q?=?s.createQuery("from?foo?Foo?as?foo?where?foo.name=:name?and?foo.size=:size");
    q.setProperties(fooBean);?
    //?fooBean包含方法getName()與getSize()
    List?foos?=?q.list();












    主站蜘蛛池模板: 日韩av无码成人无码免费| 国产美女做a免费视频软件| 日本一卡精品视频免费 | 区三区激情福利综合中文字幕在线一区亚洲视频1 | 亚欧免费无码aⅴ在线观看| 久久电影网午夜鲁丝片免费| 亚洲国产精品综合一区在线| 国产特黄一级一片免费| 无码区日韩特区永久免费系列 | 亚洲AV综合色一区二区三区| 综合偷自拍亚洲乱中文字幕| 亚洲一区在线免费观看| 亚洲无线一二三四区手机| 在线免费视频你懂的| 精品亚洲永久免费精品| 免费VA在线观看无码| 大地资源在线观看免费高清| 亚洲综合无码无在线观看| 99蜜桃在线观看免费视频网站| 99ri精品国产亚洲| 最近免费中文字幕中文高清 | 国产黄在线播放免费观看| 白白国产永久免费视频| 亚洲激情视频网站| 国产无遮挡无码视频免费软件 | 日本xxxx色视频在线观看免费| 亚洲黄色三级视频| 免费的全黄一级录像带| 亚洲精品午夜在线观看| 日韩激情淫片免费看| 亚洲 日韩经典 中文字幕| 1a级毛片免费观看| 亚洲国产精品不卡在线电影| 一级黄色免费毛片| 亚洲国产精品成人一区| 污污免费在线观看| 亚洲黄网站wwwwww| 亚洲国产成人爱av在线播放| 91av免费观看| 亚洲午夜久久久精品电影院| 色se01短视频永久免费|