我正在尝试使用 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;
}
}
下面是我尝试设置 blob 的代码
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 保存到数据库中时,我看到所有值都正确保存在数据库中,除了显示 null 的 IMAGE_BLOB 列值,它不会抛出任何异常。我还验证了尝试设置的 imageBlob 不为空。
有人可以帮我解决这个问题吗?
最佳答案
@LOB
@Column(name="IMAGE_BLOB")
private byte[] imageBlob;
它运行良好,我也在 Oracle DB 中完成了它。因此,如果您收到 ClassCastException
,那么您的 Java 代码就会出现问题。
关于java - 无法使用 JPA 将 java.sql.BLOB 持久保存到 oracle BLOB 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14075323/