成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Hibernate3.2基礎分析

開發 后端
這里介紹Hibernate3.2的很多sql函數如 count(), sum()的唯一返回值已經從Integer變為Long,如果不升級代碼,會得到一個ClassCastException.這個變化主要是為了兼容 JPA,可以在Hibernate.org的最新文檔中找到說明。

本文向大家介紹Hibernate3.2,可能好多人還不了解Hibernate3.2,沒有關系,看完本文你肯定有不少收獲,希望本文能教會你更多東西。

1、從Hibernate3.0.x/3.1.x升級到***的Hibernate3.2,一定要注意,Hibernate3.2的很多sql函數如 count(), sum()的唯一返回值已經從Integer變為Long,如果不升級代碼,會得到一個ClassCastException.這個變化主要是為了兼容 JPA,可以在Hibernate.org的***文檔中找到說明。

Hibernate Team也提供了一個與原來兼容的解決方案:

  1. Configuration classicCfg = new Configuration();  
  2. classicCfg.addSqlFunction( "count", new ClassicCountFunction());  
  3. classicCfg.addSqlFunction( "avg", new ClassicAvgFunction());  
  4. classicCfg.addSqlFunction( "sum", new ClassicSumFunction());  
  5. SessionFactory classicSf = classicCfg.buildSessionFactory();  
  6.  
  7. //或  
  8.  
  9. int count = ((Integer)q.uniqueResult()).intValue();
  10. //改成 
  11. int count = ((Number)q.uniqueResult()).intValue(); 

這樣就可以兩個版本同時兼容。

2、Hibernate3.2要求ehcache1.2

3、session.createSQLQuery(sql).executeUpdate();這個Hibernate3.0.5不支持,而 Hibernate3.2支持,session.createSQLQuery(fsql).addScalar("singlevalue",Hibernate.DOUBLE).uniqueResult();這個到了3.2就不需要addScalar了。

4、session.createSQLQuery(sql).addEntity(Class class);Hibernate3.0.5不支持,單個參數的addEntity方法。

5、Hibernate3.2可以對原生sql 查詢使用ResultTransformer.這會返回不受Hibernate管理的實體。

  1. sess.createSQLQuery("SELECT NAME, BIRTHDATE FROM CATS")  
  2. .setResultTransformer(Transformers.aliasToBean(CatDTO.class))  
  3.  
  4. //或:  
  5.  
  6. setResultTransformer(new AliasToBeanResultTransformer(CatDTO.class)) 

上面的查詢將會返回CatDTO的列表,它將被實例化并且將NAME和BIRTHDAY的值注射入對應的屬性或者字段。但必須注意,對每一個列都必須addScalar("列名")

6、setResultTransformer與addEntity的一個區別是前者支持查任意的列,后者必須用select * from users的形式或select {a.*},{b.*} from a,b where ……。

7,Map vs. Object[]

  1. Since you can also use a transformer that return a Map from alias to value/entity  
  2. (e.g. Transformers.ALIAS_TO_MAP), you are no longer required to mess with index based  
  3. Object arrays when working with a result.  
  4.  
  5. List iter = s.createQuery("select e.student.name as studentName," + "e.course.
    description as courseDescription" +
    "from Enrolment as e").
    setResultTransformer( Transformers.ALIAS_TO_MAP )
    .iterate();  
  6. String name = (Map)(iter.next()).get("studentName");  
  7. Again, this works equally well for Criteria, HQL and native SQL

【編輯推薦】

  1. Hibernate3.1簡單描述
  2. Hibernate save基礎簡介
  3. 淺析Hibernate 3二級緩存基礎
  4. Hibernate流行架構淺析
  5. Hibernate update淺談
責任編輯:佚名 來源: IT168
相關推薦

2009-06-18 10:41:18

Hibernate3.Hibernate3.

2009-06-18 10:53:52

Hibernate3.

2009-09-25 17:26:55

使用Hibernate

2009-09-22 14:23:37

Hibernate S

2009-09-21 13:56:09

Hibernate3.

2009-09-28 10:39:01

Hibernate基礎

2010-05-07 11:04:43

Hibernate

2009-06-19 18:42:06

jBPMSSH

2009-09-21 17:33:50

Hibernate基礎

2009-06-24 08:05:56

Hibernate基礎Configurati

2009-09-27 11:27:33

Hibernate3JBOSS 3.2

2009-09-23 16:39:51

Hibernate s

2009-09-22 09:27:29

Hibernate P

2009-09-28 10:14:08

Hibernate基礎

2009-09-21 13:19:06

Hibernate s

2009-09-28 10:24:58

Hibernate基礎

2009-09-21 16:30:20

Hibernate S

2009-09-28 10:05:27

Hibernate基礎

2009-09-23 13:33:51

Hibernate屬性

2009-09-24 09:35:47

Hibernate插入
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 91精品久久久久久久久久入口 | 国产精品福利网 | 日韩精品一区二区三区视频播放 | 精品一区二区久久久久久久网精 | 九九热在线观看视频 | 成人激情视频在线观看 | 九九热在线视频 | 无人区国产成人久久三区 | 美女视频久久 | 精品九九| 色婷婷九月 | 天天躁日日躁狠狠躁2018小说 | 中文字幕一二三区 | 色站综合| 国产日韩一区二区三区 | 一本一道久久a久久精品综合蜜臀 | 亚洲欧美激情精品一区二区 | 久久性色 | 中文字幕日韩在线 | 激情 亚洲| 国产成视频在线观看 | 亚洲欧美中文日韩在线v日本 | 国产精品一区二区久久 | 天天干夜夜操 | 国产精品一区一区 | 久久高清 | 99热最新| 精品国产欧美一区二区三区成人 | 日韩av手机在线观看 | 欧美一区在线视频 | 九九热精品在线 | 黄色欧美在线 | 精品国产一区二区国模嫣然 | 久久精品欧美一区二区三区麻豆 | 少妇精品久久久久久久久久 | 亚洲二区视频 | 黄a大片 | 成人精品久久久 | 一区二区三区 在线 | 亚州精品天堂中文字幕 | 欧美一区二区久久 |