Spring 1.1+Hibernate 2.1換成
Spring 1.2+Hibernate 3.0的組合
轉換的注意事項的話我發現下面這篇post寫得蠻完整的,我個人試過,可以順利轉換
(1) Hibernate3 SessionFactoryUtils doesn't call "setReadOnly(true)" anymore。這個會影響到
open session in view filter,與原來的行為不大一樣 (算是修正 bug),如果有使用這個 filter 的話,最好稍微測一下。
(2) 如果有用 Acegi 的人,Spring 1.2 要搭配最新的 0.8.2 版才行。
(3) Hibernate 3 的 reference 比之 2 的又更上一層樓,值得細讀。
(4) 自 Spring 1.1.4 開始,多了個 LazyConnectionDataSourceProxy,用來 lazy 存取 connection (直到真正動到 DB 了才會連線)
(5) HibernateException 變成 unchecked exception 了,不過不代表可以不處理直接丟出去,你還是得乖乖的用
hibernateTemplate 幫你包裝。
I make use of Hibernate metadata as well as Spring. Here's my list of
all the changes I had to make to run my application with HB3 on
WebLogic. This may repeat some of this information above and is not
meant to be exhaustive.
1. global replace net.sf.hibernate to org.hibernate (be sure to include
the XML configuration files as well)
2. global replace org.springframework.orm.hibernate to
org.springframework.orm.hibernate3 (be sure to include the XML
configuration files as well)
3. global replace net.sf.hibernate.expression.Expression to
org.hibernate.criterion.Expression
4. global replace net.sf.hibernate.expression.Order to
org.hibernate.criterion.Order
5. convert method call getHibernateTemplate.getNamedQuery(Session sess,
String query) to session.getNamedQuery(String query)
6. convert method call getHibernateTemplate().createCriteria(session,
getReferenceClass()) to session.createCriteria(getReferenceClass())
7. Add new EntityMode.POJO parameter as follows to:
ClassMetadata.getPropertyValue(dest,
SkipFields.TCN.toString().substring(1), EntityMode.POJO)
8. Add new EntityMode.POJO parameter as follows to:
classMetadata.getMappedClass(EntityMode.POJO)
9. global replace HibernateProxyHelper.getClass(object) to
HibernateProxyHelper.getClassWithoutInitializingProxy(object);
10. Convert method call: propertyTypes.isPersistentCollectionType()) to
propertyTypes.isCollectionType())
11. Update the DTD as follows:
<!DOCTYPE hibernate-configuration
PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
12. Replace in the HBM files any instance of “<generator class=”vm” />
to of “<generator class=”native” />
13. Add lazy=”false” to any class or association if you don’t use to use
lazy initialization. However, this is strongly discouraged and thus why
the default is now set to true.
14. Caching is now enabled by default using the EHCache. If you want to
disable this, you must do this from the hibernate.cfg.xml. Again, this
is strongly discouraged.
15. Remove all the previous versions of the .jars associated with
Hibernate and replace them with the new versions.
16. On BEA, you have to move antlr-2.7.5H3.jar to the PRE_CLASSPATH of
the server to run inside BEA because BEA includes this tool in their
system classpath that is inconsistent.
posted on 2006-03-28 17:01
OMG 阅读(365)
评论(0) 编辑 收藏 所属分类:
Hibernate