首页 > Web开发 > 详细

hibernate blob 对象序列化保存

时间:2015-11-07 02:12:14      阅读:292      评论:0      收藏:0      [点我收藏+]

hibernate blob 对象序列化保存

?

?

本文 是 在数据库中存储一个 estatic search 对象 ESQueryCondition ?该对象 。

?

代码走起,

?

bean

package com.cmcc.aoi.selfhelp.entity;

import java.io.Serializable;
import java.sql.Blob;
import java.util.Date;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Lob;
import javax.persistence.Table;

import org.slave4j.orm.hibernate.BaseEntity;

/**
 * @author baoyou  E-mail:curiousby@163.com
 * @version 创建时间:2015年11月2日 下午2:27:10 
 * des:
 */
@Entity
@Table(name = "estask")
public class EsTask extends BaseEntity implements Serializable {
	@Id
	@Column(name = "es_id")
	private String esId;
	
	@Lob()
	@Column(name = "es_qcserializable")
	private Blob esQcserializable;
	 
	@Column(name = "es_qcjsonstring")
	private String esQcjsonstring;
	
	@Column(name = "es_send_status")
	private int esSendStatus;
	
	@Column(name = "request_id")
	private String requestId;
	
	@Column(name = "insert_time")
	private Date insertTime;

	@Column(name = "last_update_time")
	private Date lastUpdateTime;
	
	
	
	public String getEsId() {
		return esId;
	} 
	public void setEsId(String esId) {
		this.esId = esId;
	} 
	 
	public Blob getEsQcserializable() {
		return esQcserializable;
	}
	public void setEsQcserializable(Blob esQcserializable) {
		this.esQcserializable = esQcserializable;
	}
	public String getEsQcjsonstring() {
		return esQcjsonstring;
	} 
	public void setEsQcjsonstring(String esQcjsonstring) {
		this.esQcjsonstring = esQcjsonstring;
	} 
	public int getEsSendStatus() {
		return esSendStatus;
	} 
	public void setEsSendStatus(int esSendStatus) {
		this.esSendStatus = esSendStatus;
	} 
	public String getRequestId() {
		return requestId;
	} 
	public void setRequestId(String requestId) {
		this.requestId = requestId;
	}
	public Date getInsertTime() {
		return insertTime;
	}
	public void setInsertTime(Date insertTime) {
		this.insertTime = insertTime;
	}
	public Date getLastUpdateTime() {
		return lastUpdateTime;
	}
	public void setLastUpdateTime(Date lastUpdateTime) {
		this.lastUpdateTime = lastUpdateTime;
	} 
}

?

EsTask et = new EsTask();
et.setEsId(deliverWebRequest.getRequestId()+"");
et.setEsQcjsonstring(wstf.getWkjsTag());
et.setEsQcserializable(HibernateBlobUtil.ObjectToBlob(getESQueryCondition(wstf.getWkjsTag() ,req)));
et.setEsSendStatus(-1);
et.setLastUpdateTime(new Date());
et.setInsertTime(new Date());
esTaskService.save(et);

?取

ESQueryCondition query =  (ESQueryCondition) HibernateBlobUtil.BlobToObject( et.getEsQcserializable());

?

工具类

package com.cmcc.aoi.util;

import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;

import org.hibernate.Hibernate;

/**
 * @author baoyou E-mail:curiousby@163.com
 * @version 创建时间:2015年11月3日 下午6:47:56 des:
 */
public class HibernateBlobUtil {

	public static java.sql.Blob ObjectToBlob(Object obj)  {
		try {
			ByteArrayOutputStream out = new ByteArrayOutputStream();
			ObjectOutputStream outputStream = new ObjectOutputStream(out);
			outputStream.writeObject(obj);
			byte[] bytes = out.toByteArray();
			outputStream.close();
			return Hibernate.createBlob(bytes);
		} catch (Exception e) {
			return null;
		}

	}

	public static Object BlobToObject(java.sql.Blob desblob)   {
		try {
			Object obj = null;
			ObjectInputStream in = new ObjectInputStream(
					desblob.getBinaryStream());
			obj = in.readObject();
			in.close();
			return obj;
		} catch (Exception e) { 
			e.printStackTrace();
		}
		return null;
	}
	
	
}

?

测试结果 ,一切ok .....

?

??

hibernate blob 对象序列化保存

原文:http://knight-black-bob.iteye.com/blog/2254999

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!