hibernate、DetachedCriteria中关于clob获得HibernateTemplate对象的转换

来源:互联网 发布:软件测试过程 编辑:程序博客网 时间:2024/06/14 05:36

hibernate映射文件 和hibernate的查询中有 oracle 的clob大对象字段的如何转换

思路:把clob转换为string 才能显示


主要转换方法

public class UtilTools {

/**
* 大对象转换为字符串
* @param clob
* @return
*/
public static String clobToString(Clob clob){   
      if(clob == null) {   
          return null;   
      }   
      try{   
          Reader inStreamDoc = clob.getCharacterStream();   
          char[] tempDoc = new char[(int) clob.length()];   
          inStreamDoc.read(tempDoc);   
          inStreamDoc.close();   
          return new String(tempDoc);   
      }   
      catch (IOException e) {   
          e.printStackTrace();   
      }   
      catch (SQLException es) {   
          es.printStackTrace();   
      }   
        return null;   
    }

}

映射文件

   <property name="eventParam" type="java.sql.Clob">
                <column name="EVENT_PARAM" />
            </property>

对象类

private Clob eventParam;

private String eventParamString;//用来做转换后显示的


具体应用操作:

public Map findViewNeEventInfo(Integer start, Integer limit,
ViewNeEvent viewNeEvent, UumLogincheck loginUser){

DetachedCriteria criteria=DetachedCriteria.forClass(ViewNeEvent.class);

if (!UtilTools.isNullOrEmpty(viewNeEvent.getNeName())){
criteria.add(Restrictions.like("neName", viewNeEvent.getNeName(),MatchMode.ANYWHERE));
}

criteria.addOrder(Order.desc("eventId"));

criteria.setProjection(Projections.rowCount());
Criteria criteria1=criteria.getExecutableCriteria(getSession());
Integer totalProperty=Integer.parseInt(criteria1.uniqueResult().toString());

criteria.setProjection(null);
List<ViewNeEvent> list=null;
if(limit>0){
list=getHibernateTemplate().findByCriteria(criteria, start, limit);

//将oracle的clob转换为string
for(ViewNeEvent obj: list){
String str2 = UtilTools.clobToString(obj.getEventParam());
obj.setEventParam(null);
obj.setEventParamString(str2);
}
}else{
list=getHibernateTemplate().findByCriteria(criteria);
}

Map result=new HashMap();
result.put("list", list);
result.put("counts",totalProperty);
return result;
}





0 0
原创粉丝点击