Tudo bem pessoal é o seguinte criei uma classe entidade na minha aplicação para inserção de uma figura PNG com transparência no meu banco de dados, a classe é essa:
[code]import java.io.Serializable;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Lob;
@Entity
public class ImagemDeFundo implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Lob
@Column(name = "imagem", nullable=false)
private byte[] imagem;
private String nome;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public byte[] getImagem() {
return imagem;
}
public void setImagem(byte[] imagem) {
this.imagem = imagem;
}
}[/code]
Acontece que quando eu chamo o Jpa Controller para inserir editar e listar este objeto, o Jpa sempre dá erro de execução ou simplesmente não mostra a figura na ora de listar o objeto…
Pra inserir a figura estou fazendo isso:
try {
ImagemDeFundo i = new ImagemDeFundo();
ImageIcon imageIcon = new ImageIcon(getFile().getPath());
Image img = imageIcon.getImage();
byte[] bytes = new PngEncoder(img, true).pngEncode();
i.setImagem(bytes);
i.setNome("temporario");
ImagemDeFundoJpaController iJpa = new ImagemDeFundoJpaController();
iJpa.create(i);
} catch (Exception e) {
JOptionPane.showMessageDialog(null, "Erro ao inserir a imagem:\n" + e);
}
Para mostrar a figura estou fazendo isso:
ImagemDeFundo i = new ImagemDeFundo();
ImagemDeFundoJpaController iJpa = new ImagemDeFundoJpaController();
i = iJpa.findImagemDeFundo(new Long("1"));
byte[] bytes2 = i.getImagem();
Image imagem = Toolkit.getDefaultToolkit().createImage(bytes2);
ImageIcon img = new ImageIcon(imagem);
JLabel label = new JLabel(img);
jScrollPane1.setViewportView(label);
Por favor, me ajudem!!! o que eu estou fazendo de errado pra a figura não aparece quando eu coloco pra mostrar?
Tem algumas pessoas (eu tbm as vezes faço isso ) que simplesmente apontam o caminho no banco de dados, mas agora esta figura tem de ser persistida no bando…
Existe algum outro jeito de inserir e exibir esta figura? Como?
Obs: estou utilizando o Postgres