Mapear, Persistir arquivo binario

4 respostas
T

Gostaria de saber como mapear e persistir arquivo binario.

Grato

Tony christopher

4 Respostas

fabim

Vc quer gravar um BLOB no banco?

T

Sim, uso o hibernate 3.0

T

Senhores…
O mapeamento foi feito para o campo do tipo java.lang.Byte
mas ainda nao sei como fazer para preencher este atributo do objeto, para que possa gravar no banco.

Consigo fazer um upload e gravar no disco, mas necessito gravar no banco.

Alguem pode me ajudar ?

T
Eis aqui a solução

( para Oracle)

Primeiramente mapeei o tipo do campo como blob mesmo

e

Mesmo trocando o drive classes12 para o ojdbc14, Tive que implementar a seguinte classe para persistir no objeto.

public static Blob getBlobOracle(InputStream inputStream) throws Throwable {

oracle.sql.BLOB blob;

try{

blob = oracle.sql.BLOB.createTemporary(HbnUtil.getCurrentSession().connection(),

false, oracle.sql.BLOB.DURATION_SESSION);
blob.open(oracle.sql.BLOB.MODE_READWRITE);

OutputStream out = blob.getBinaryOutputStream();

byte[] buffer = new byte[4096];
ByteArrayOutputStream arrayOutputStream = new ByteArrayOutputStream();

int bytesRead = 0;

while ((bytesRead = inputStream.read(buffer))!= -1)

arrayOutputStream.write(buffer,0,bytesRead);

arrayOutputStream.close();

byte[] arquivo = arrayOutputStream.toByteArray();

out.write(arquivo);

out.flush();

out.close();
blob.close();

} catch (SQLException s){

throw new Throwable(s.getMessage());

} catch (IOException e){

throw new Throwable(e.getMessage());

}

return blob;

}

(caso para outro banco qualquer)
setDocumento(Hibernate.createBlob(arquivo));

Criado 21 de janeiro de 2008
Ultima resposta 23 de jan. de 2008
Respostas 4
Participantes 2