<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 :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

    沒有玩轉的 hibernate hql 檢索

    Posted on 2007-08-24 16:36 G_G 閱讀(605) 評論(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(); //根據對象查詢
    ??? ?
    ??? 3。HQL 完全面向對象的,具備繼承、多態和關聯等特性。
    ??? ?? 1)參見: HQL
    ??? ?? 2)內連接,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)?);

    //集合內 結果 liukaiyi:heha
    //
    元素集(elementsindices 函數) 可以使用 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人片一区二区密柚| 亚洲黄色高清视频| 亚洲阿v天堂在线2017免费| 日韩在线看片免费人成视频播放| 亚洲精品日韩专区silk| 久久国产精品2020免费m3u8| 亚洲精品无码午夜福利中文字幕| a级毛片免费高清视频| 亚洲视频在线观看| 免费在线看污视频| 亚洲中文字幕无码一区二区三区| 乱爱性全过程免费视频| 免费中文字幕在线观看| 色一情一乱一伦一视频免费看| 好吊妞在线成人免费| 亚洲中文字幕无码中文字| 成人黄页网站免费观看大全| 亚洲欧洲免费无码| 国产免费人成视频在线观看 | 久热免费在线视频| 亚洲一区二区无码偷拍| 国产亚洲3p无码一区二区| 成人毛片免费在线观看| 久久久久国产精品免费看| 亚洲小视频在线观看| 免费大黄网站在线观| 黄页网站在线观看免费高清| 亚洲色www永久网站| 国产亚洲色婷婷久久99精品| 日韩免费高清一级毛片在线| 99久久免费精品高清特色大片| 亚洲人成777在线播放| 免费观看毛片视频| 日韩一级片免费观看| 亚洲中文字幕日本无线码| 全黄性性激高免费视频| aⅴ在线免费观看| 女bbbbxxxx另类亚洲| 亚洲日韩精品无码一区二区三区| 无码国产精品一区二区免费式芒果|