Gostaria de saber como mapear e persistir arquivo binario.
Grato
Tony christopher
Gostaria de saber como mapear e persistir arquivo binario.
Grato
Tony christopher
Vc quer gravar um BLOB no banco?
Sim, uso o hibernate 3.0
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 ?
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));