自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

關于Hibernate3.2的一些介紹

開發(fā) 后端
從Hibernate3.0.x/3.1.x升級到最新的Hibernate3.2,一定要注意,Hibernate3.2的很多sql函數如count(), sum()的唯一返回值已經從Integer變?yōu)長ong,如果不升級代碼,會得到一個ClassCastException。這個變化主要是為了兼容JPA,可以在Hibernate.org的最新文檔中找到說明。

1、從Hibernate3.0.x/3.1.x升級到***的Hibernate3.2,一定要注意,Hibernate3.2的很多sql函數如count(), sum()的唯一返回值已經從Integer變?yōu)長ong,如果不升級代碼,會得到一個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();  

int count = ((Integer)q.uniqueResult()).intValue();改成 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))  

或:

  1. setResultTransformer(new AliasToBeanResultTransformer(CatDTO.class))  

上面的查詢將會返回CatDTO的列表,它將被實例化并且將NAME和BIRTHDAY的值注射入對應的屬性或者字段。但必須注意,對每一個列都必須addScalar("列名")
6、setResultTransformer與addEntity的一個區(qū)別是前者支持查任意的列,后者必須用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.  
  3. (e.g. Transformers.ALIAS_TO_MAP), you are no longer required to mess with index based   
  4.  
  5. Object arrays when working with a result.   
  6.  
  7. List iter = s.createQuery(  
  8.   "select e.student.name as studentName," +  
  9.   "       e.course.description as courseDescription" +  
  10.   "from   Enrolment as e")  
  11.   .setResultTransformer( Transformers.ALIAS_TO_MAP )  
  12.   .iterate();  
  13.  
  14. String name = (Map)(iter.next()).get("studentName");  
  15.  
  16. Again, this works equally well for Criteria, HQL and native SQL。 

 

【編輯推薦】

  1. 強人Hibernate文檔筆記(上)
  2. 強人Hibernate文檔筆記(中)
  3. 強人Hibernate文檔筆記(下)
  4. Hibernate一對多關系的處理
  5. Hibernate的性能優(yōu)化
責任編輯:仲衡 來源: CSDN博客
相關推薦

2009-09-21 14:24:08

Hibernate3.

2009-06-18 10:41:18

Hibernate3.Hibernate3.

2009-09-21 17:46:25

Hibernate數據

2009-09-25 17:26:55

使用Hibernate

2009-06-18 13:42:48

Hibernate s

2011-07-13 09:13:56

Android設計

2013-04-07 10:40:55

前端框架前端

2009-06-18 09:51:25

Java繼承

2011-05-23 18:06:24

站內優(yōu)化SEO

2019-10-15 06:00:26

Google AnalAngularReact

2012-09-25 10:03:56

JavaJava封面Java開發(fā)

2010-04-07 16:55:14

Unix命令

2017-09-20 15:07:32

數據庫SQL注入技巧分享

2016-10-18 22:10:02

HTTP推送HTML

2020-05-19 14:35:42

Shell腳本循環(huán)

2021-06-10 10:02:19

優(yōu)化緩存性能

2018-07-30 08:41:48

VueReact區(qū)別

2020-04-10 08:50:37

Shell腳本循環(huán)

2009-08-13 16:41:12

C#結構

2017-12-21 07:54:07

點贊
收藏

51CTO技術棧公眾號