[RESOLVIDO]Select Blob do Firebird com Hibernate

Galera, boa tarde, mais uma vez estou aqui procurando ajuda, e só venho aqui quando não tenho mais
recursos, já dei umas “googladas” e nada, o meu problema é o seguinte…
estou refazendo um sistema de impressão de crachás aqui do hospital que trabalho, o anterior era feito em
Delphi (o meu antecessor programava em Delphi), agora estou desenvolvendo o mesmo em java e estou
“tentando” utilizar o Hibernate, fazer o Insert, Update, Delete e o Select foi tranquilo, enquanto era letras ou
números, mas no crachá de funcionários tem a foto, foi quando começou a briga, kkkkkk, consegui fazer o
Insert da imagem, converter em InputStream e inserir no banco igual fiz com o PreparedStatement, porém para
o select não é da mesma maneira, e já tentei de várias formas diferentes e já procurei muito no Google e o
máximo que consegui foi um exemplo com Postgre e Mysql mas ao tentar adaptar para o Firebird não funcionou,
a cada mensagem de erro procurava a solução, mas só aumentavam as mensagens, então estou com essa grande
pedra no caminho, então o meu pedido é, alguém já usou o campo Blob do Firebird com Hibernate, se sim, poderia me
mostrar como, porque não sei mais onde procurar e já li a documentação do Hibernate (lógico que não completa, mas
procurei sobre Blob e nada que encontrei ajudou), se caso não for possível volto para o básico mesmo, não compensa usar
o Insert com Hibernate e no Select que processa mais informações não usufruir da velocidade, agradeço desde já.

E ai galera, alguem?, ou será que não tem geito mesmo?

Pensei nas seguintes soluções:

1-Esqueça esse banco e instale outro.
ou
2-Crie uma pasta compartilhada, salve as imagens nela e no banco de dados você salva apenas o caminho para a imagem. Isso deixará o banco bem leve, alias.

ps: Se eu me lembro bem ,o select no banco para blob deve ser inserido em um vetor de bytes (bytes []). Esses bytes você transforma em imagem.

ErickRAR obrigado pelas dicas mas a primeira opção não dá, pois o banco contém todo
historico de funcionários e estagiários da empresa, já a segunda opçao, pensei nessa
possibilidade porém o que me entriga é o fato de não poder visualizar essas imagens no
java e quando salvo com o java não visualizo no programa que era usado, segue o codigo
para inserir a imagem no banco…

//crio um File apartir de um JFileChooser
File fotoCracha = new File(procuraImagem.getSelectedFile().getAbsolutePath());
//converto o File(imagem para IntupStream
FileInputStream leFoto = new FileInputStream(fotoCracha);
//aqui setando o BinaryStream no preparedStatement
pstmt.setBinaryStream(2, leFoto, (int) fotoCracha.length());

Com esse codigo ensiro a imagem e consigo visualizar tanto no IBEXPERT quanto com o
seguinte codigo no java…

Blob imageBlob = conFuncionarios.resultSet.getBlob(2);
ImageIcon imagemCrua = new ImageIcon(imageBlob.getBytes(1, (int) imageBlob.length()));
Image imageRedimensionada = imagemCrua.getImage().getScaledInstance(lblFotoCracha.getWidth(), lblFotoCracha.getHeight(), Image.SCALE_DEFAULT);
imagemCrua = new ImageIcon(imageRedimensionada);
lblFotoCracha.setIcon(imagemCrua);

Funciona perfeitamente só que com imagens salvas com o java, as anteriores dá um erro de inválido,
e se salvar e tentar abrir com o programa anterior que é em delphi dá o mesmo erro com as
que foram salvas em java, como continuo fazendo testes e terminando o projeto me deparei com outra questão,
utilizamos uma impressora DATACARD SP35 PLUS, e ao imprimir o crachá usando o ireport o codigo de barra
não sai com a tonalidade correta, ou seja, não sai preto como deveria, sai meio acinzentado o que interfere na
leitura do relógio de ponto e nas catracas de acesso, sou novo no java e sei que devo estar fazendo algo de errado,
teria alguma luz, tanto no banco quando na impressão?

Posta o strack trace do erro, se possível entre as tags [code][/code]

ErickRAR peço desculpa mas acabei me enrolando na mensagem, quando carrego no java não dá erro, apenas não exibe
a imagem, o erro foi quando tentei carregar no programa em delphi a imagem salva com o java, mas
consegui recuperar a imagem com o seguinte codigo …

byte[] byteImagem = conexao.resultSet.getBytes(1);
FileOutputStream caminhoFoto = new FileOutputStream("/Temp/imagem.jpg");                     
caminhoFoto.write(byteImagem);  
FileDescriptor fdArquivo = caminhoFoto.getFD();  
caminhoFoto.flush();  
fdArquivo.sync();  
caminhoFoto.close();

Porém salvo em um arquivo, não consegui converter para ImageIcon para setar em um JLabel, qual seria
a maneira de converter para ImageIcon?

Fzendo o basico( new ImageIcon("/Temp/imagem.jpg")) não vai? O arquivo fica salvo ali o tempo todo? O Path Está certo?
Tenta criar um File desse arquivo e passar os bytes para o ImageIcon.

Sobre a impressão não tenho a minima idéia, mas ja vi relatos de problemas com impressão com o ireport. Aqui no fórum deve ter algo.

não vai pelo seguinte, o arquivo está sendo salvo naquela pasta, utilizo linux então criei uma pasta chamada “Temp” na raiz de diretorios por isso está setado como /Temp/imagem.jpg,
esse arquivo jpg estão sendo gerado normal, visualizo cada foto salva assim, porém meu interesse é exibir elas em um Jlabel, essa maneira que postei foi a única que conseguei
visualizar as imagens salvas pelo sistema anterior, porém só salvando em arquivo, o que quero é dar um SELECT no banco trazer a informação e já exibir na tela, e não salvar em
arquivo, porém dessa maneira que consegui usando o FILEDESCRIPTOR não obtive resultado convertendo em IMAGEICON, e tenho de poder visualizar porque pode acontecer de
um funcioniario mudar de função ou até mesmo de setor, então na edição do registro tenho de mostrar a foto dele, não queria salvar em arquivo e carregar e quando fechar excluir esse
arquivo, queria mostrar diretamente na tela, mas pra isso preciso converter pra icon, se não fizer o SELECT como esse do post anterior ele não dá erro mas não exibe imagem, asim
pelo menos ele traz a imagem porém em arquivo, mas estou quase me conformando, quando comecei aprender java achei que poderia fazer tudo, mas estou me deparando com
pequenos problemas que a solução acaba não sendo as melhores, eu já programo em .NET e arranho um pouco em DELPHI, não estou falando que existe melhor nem pior mas do mesmo geito
que tem muita coisa complicada nas outras linguagens tambem tem no java, e não me “avisaram” que ia ser assim, kkkkkkkkkkkkk, afinal, são 7 meses de estudo, acho que o java é linguagem pra estudar mais tempo e depois sim começar um projeto, mas…, muito obrigado pela ajuda ErickRAR.