论坛首页 Java企业应用论坛

升级到hibernate search 4.0,hibernate core4 ,spring 3.1 初步代码变化

浏览 2028 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2011-12-26  

1.hibernate search 已经有4.0.0.Final 版本了

 

正好手头再做新的项目,升级下

 

一升级,发现代码很多错误,发现有两个类发生了重要的变化

 

第一个是 枚举org.hibernate.search.annotations.Index

 

4.0.0以前的版本 里面的枚举是这样的

 

 

   /**

    * Do not index the field value. This field can thus not be searched,

    * but one can still access its contents provided it is

    * {@link Store stored}.

    */

   NO,

   /**

    * Index the field's value so it can be searched. An Analyzer will be used

    * to tokenize and possibly further normalize the text before its

    * terms will be stored in the index. This is useful for common text.

    */

   TOKENIZED,

   /**

    * Index the field's value without using an Analyzer, so it can be searched.

    * As no analyzer is used the value will be stored as a single term. This is

    * useful for unique Ids like product numbers.

    */

   UN_TOKENIZED,

   /**

    * Index the field's value without an Analyzer, and disable

    * the storing of norms.  No norms means that index-time boosting

    * and field length normalization will be disabled.  The benefit is

    * less memory usage as norms take up one byte per indexed field

    * for every document in the index.

    */

   NO_NORMS

 

4.0.0里面的这个枚举是这样的

 

   /**

    * Index the field value.

    */

   YES,

 

   /**

    * Do not index the field value. This field can thus not be searched,

    * but one can still access its contents provided it is

    * {@link Store stored}.

    */

   NO

 

简洁了许多

 

所以 以前的 org.hibernate.search.annotations.Index.TOKENIZED 代码 要改成 org.hibernate.search.annotations.Index.YES

 

2.顺带还发现 @org.hibernate.annotations.Entity 这个annotation 已经@Deprecated,而且javadoc 里面写得很清楚  To be removed in 4.1,呵呵 人家已经和你打招呼了

 

所以 我们原来的乐观锁@org.hibernate.annotations.Entity(optimisticLock = OptimisticLockType.VERSION) 要改成 @OptimisticLocking(type = OptimisticLockType.VERSION),这个annotation  默认采用的是   OptimisticLockType type() default OptimisticLockType.VERSION;

所以,如果你的乐观锁是采用version column 那么 可以简写成 @OptimisticLocking

要改成

 

 

 

第二,原来的

 

org.hibernate.search.filter.CachingWrapperFilter 已经该成 org.hibernate.search.filter.impl.CachingWrapperFilter;

 

 

 

 

3.spring 3.0.6 升级到3.1.0

 

发现

 

   private UrlMatcher urlMatcher = new AntUrlPathMatcher();;

UrlMatcher AntUrlPathMatcher  这两个类不见了

 

 

org.springframework.security.web.util.AntUrlPathMatcher;

import org.springframework.security.web.util.UrlMatcher;

 

 

取而代之的是 

 

import org.springframework.util.AntPathMatcher;

import org.springframework.util.PathMatcher;

 

而且写法也不一样了

 

要这么写

 

 

      FilterInvocation filterInvocation = (FilterInvocation) object;

      HttpServletRequest request = filterInvocation.getHttpRequest();

 

 

RequestMatcher requestMatcher = new AntPathRequestMatcher(resURL);

 

requestMatcher.matches(request)

 

在这里,如果你们的项目有成熟 的架构,我不建议各位去升级 

 

要改动的地方很多

 

 

 

   发表时间:2011-12-27  
hibernate4.伤不起,变化太大了,我都不知道咋注册event了
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics