思路SQLServerBlob-->InputStream-->oracle.sql.BLOB
环境,项目中需要进行SQLSERVER和ORACLE的数据同步.
将SQLSERVER中的BLOB转换为ORACLE的BLOB
1.[代码][Java]代码
思路SQLServerBlob-->InputStream-->oracle.sql.BLOB
环境,项目中需要进行SQLSERVER和ORACLE的数据同步.
>>>>>将SQLSERVER中的BLOB转换为ORACLE的BLOB<<<<<
项目中配置2个数据源,分别连接SQLSERVER和ORACLE
ORACLE中的POJO映射为BLOB字段类型
@Lob()
@Basic(fetch = FetchType.LAZY)
@Column(name = "MODALSMALLPIC",columnDefinition = "BLOB",nullable=true)
1 使用SQLQUERY查询SQLSERVER数据库
//mrpBaseDao连接的是SQLSERVER数据库
query=(SQLQuery)mrpBaseDao.createSQLQuery(mrpWlmzSql.toString());
query.addScalar("modalsmallpic",Hibernate.BLOB);
List objList = query.list();
进行查询再将objList对象中的数据取出来
//将Object中的数据转化为SerializableBlob
//org.hibernate.lob.SerializableBlob
SerializableBlob sqlBlob=(SerializableBlob)objList.get(i)[1];
Blob blob=Hibernate.createBlob(sqlBlob.getBinaryStream());
得到了blob对象后,再将该值传递到POJO中的具体字段上即可.
//baseDao连接的是ORACLE数据源
wlmz = baseDao.get(Wlmz.class,id);
wlmz.setModelpicture(blob);
baseDao.saveOrUpdate(wlmz);