我正在尝试使用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代码中就会出现问题。

09-05 08:38