目前,在一個DB我有以下表(PostgreSQL 9.2
):保存字節[]與休眠到PostgreSQL
jackpot_image
id jackpot_id mime_type image_data
serial integer varchar(32) bytea
我有以下實體:
@Entity
@Table(name = "jackpot_image")
public class JackpotImage {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id")
private int id;
@Column(name="jackpot_id")
private int jackpotId;
@Column(name="mime_type")
private String mimeType;
@Column(name="image_data")
private byte[] imageData;
//GET, SET
}
和THW以下DAO :
public class JackpotImageDao {
public JackpotImage selectImage(int imageId){
String hql = "FROM JackpotImage WHERE id = :imageId";
Query query = getSession().createQuery(hql);
query.setInteger("imageId", imageId);
return (JackpotImage) query.uniqueResult();
}
public void save(JackpotImage image){
getSession().saveOrUpdate(image);
}
}
事情是當我試圖保存,然後檢索圖像我得到不同的數組字節。現在
JackpotImage image;
JackpotImageDao imageDao;
//Getting image and ImageDAO
imageDao.save(image);
JackpotImage img = imageDao.selectImage(image.getId());
,所述image
小號二進制數據的二進制數據從img
不同'。爲什麼?我該如何解決這個問題?
你說*圖像的二進制數據不同於img的二進制數據*,但是你沒有說你是如何確定的,或者是什麼區別。請爲小圖像顯示完整的樣本,或者至少顯示原始圖像和結果的第一個和最後一百個字節。編輯你的問題做到這一點,然後在完成後評論。 – 2015-04-04 08:03:22
另外,什麼是你的PgJDBC版本,以及查詢的輸出是什麼'SELECT current_setting('bytea_output');'? – 2015-04-04 08:04:37