<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();












    主站蜘蛛池模板: 亚洲人成亚洲精品| 亚洲黄网在线观看| 视频一区在线免费观看| 国产无遮挡吃胸膜奶免费看 | a级片免费在线观看| 亚洲熟妇无码乱子AV电影| 成人一级免费视频| 国产亚洲美女精品久久久久狼| 国产在线精品观看免费观看| 久久久影院亚洲精品| 国产大片免费网站不卡美女| 美女视频黄免费亚洲| 日本午夜免费福利视频| 美女黄频a美女大全免费皮| 中国亚洲女人69内射少妇| 暖暖在线视频免费视频| 亚洲欧洲国产视频| 日韩黄色免费观看| 国产精品免费观看视频| 亚洲色欲色欲综合网站| 国产精品爱啪在线线免费观看| 亚洲精品无码专区在线| 中文字幕在线亚洲精品| 国产精品1024永久免费视频| 亚洲av无码专区在线电影天堂| 精品国产亚洲一区二区在线观看| 久操视频免费观看| 亚洲精品av无码喷奶水糖心| 中文亚洲AV片在线观看不卡| 69av免费视频| eeuss影院免费直达入口| 亚洲性一级理论片在线观看| 国产高清免费观看| 中文字幕在线免费看| 亚洲一区精品视频在线| 亚洲精品国产高清嫩草影院| 99久久免费精品视频| 人人鲁免费播放视频人人香蕉| 91亚洲精品第一综合不卡播放| 国产午夜影视大全免费观看| 精品无码国产污污污免费网站|