私は JPA を初めて使用します。フィールド PostgreSQL oid タイプ (フィールド foto) に問題があります。Primefaces の ap:fileupload を介してインターフェイスからキャプチャした画像を保存しようとしていますが、成功していません。画像フィールドのデータ型 BigInteger をマップした IDE。彼らは次のことを試みました:
私は BigInteger FileUploadEvent バイトを変換したかったのですが、私は困惑しました。
IDE が正しくマッピングされていないと考えて、OID のデータ型を byte [] に変更し、バイトが FileUploadEvent を返すようになり、エラーが発生しました。
[EL 警告]: 01/12/2013 16:54:51.2 - ServerSession (1488263888) - 例外 [EclipseLink-3002] (Eclipse Persistence Services - 2.3.2.v20111125-r10461): org.eclipse.persistence.exceptions 。ConversionException 例外の説明: 記述子 [RelationalDescriptor (Entity.Candidato -> [データベーステーブル (候補)])]、[クラス [B] に変換できませんでした。
前の 2 つのケースに注釈 @ Lob を追加しても機能しませんでした。以前の変換などを適用したかどうかはわかりません。
IDE: ネットビーンズ 7.2
データベース: PostgreSQL 9.0
永続性エンジン: EclipseLink 2.3.2
お役に立てれば幸いです。
テーブルBD
CREATE TABLE candidato
(
idcandidato serial NOT NULL,
idtipoidentificacion integer,
numeroidentificacion character varying(100),
nombres character varying(100),
foto oid,
n_foto character varying(50),
CONSTRAINT candidato_pkey PRIMARY KEY (idcandidato),
)
WITH (
OIDS=FALSE
);
BigInteger を使用したエンティティ候補 (Netbeans ジェネレーター)
@Column(name = "foto")
private BigInteger foto;
public BigInteger getFoto() {
return foto;
}
public void setFoto(BigInteger foto) {
this.foto = foto;
}
型が変更されたエンティティ候補 (byte[])
@Column(name = "foto")
private byte[] foto;
public byte[] getFoto() {
return foto;
}
public void setFoto(byte[] foto) {
this.foto = foto;
}