1

JPA(2.0)を使用して、画像をOracleデータベース(11g)のBLOBとして永続化しようとしています。

以下は私のエンティティクラスです

@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がnullではないことを確認しました。

誰かがこの問題で私を助けてくれませんか。

4

1 に答える 1

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

それはうまく機能し、Oracle DBでも実行しました。したがって、 を取得した場合ClassCastExceptionは、Java コードに問題があります。

于 2012-12-29T12:01:06.323 に答える