簡體   English   中英

無法使用JPA將java.sql.BLOB持久化到Oracle BLOB中

[英]Unable to persist java.sql.BLOB into oracle BLOB using JPA

我正在嘗試使用JPA(2.0)將圖像作為blob保留在oracle數據庫(11g)中

以下是我的實體課

@Entity
@Table(name="MyTable")
public class MyEntity implements Serializable {

@Column(name="IMAGE_BLOB")
private  Blob imageBlob;

public void setImageBlob(Blob imageBlob) {
this.imageBlob = imageBlob;
}

public Blob getImageBlob() {
return imageBlob;
}

}

下面是我的代碼試圖設置斑點

InputSteram fis = new FileInputStream("C://folder1/folder2/image1.jpg");
byte[] imageByteArray= IOUtils.toByteArray(fis);

Blob imageBlob = new SerialBlob(imageByteArray);

MyEntity myEntity = new MyEntity();
myEntity.setImageBlob(imageBlob ).

當我運行上面的代碼片段並將MyEntity持久保存到數據庫中時,我看到所有值都正確保存在數據庫中,除了IMAGE_BLOB列值顯示為null之外,它不會拋出任何異常。 我還驗證了imageBlob試圖設置的值不為null。

誰能幫我解決這個問題。

@LOB  
@Column(name="IMAGE_BLOB")  
private  byte[] imageBlob;

它運作良好,我也在Oracle DB中做到了。 因此,如果您收到ClassCastException那么您的Java代碼中將出現問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM