Boa noite a todos. Preciso persistir uma imagem no banco de dados mysql, estou usando java web, primefaces, mysql e maven no projeto. Tentei de todas as formas, usando a documentação do componente do primefaces: p:fileUpload, coloquei as dependencias, os filtros no web.xml, tudo, ele ate chega ate o ManagedBean, mas na hora de gravar no banco nao vai, de forma alguma, vou postar as partes mais importantes do código:
Na classe de modelo: Adolescente.java, tenho as variáveis mapeadas para o banco, a variável correspondente à foto é:
@Lob
@Column(name=“ado_foto”)
private byte[] foto; (Os get e set estão presentes normalmente na classe)
No managedBean eu tenho o componente fileUpload do primefaces chamando o metodo para fazer o upload da imagem:
<p:fileUpload id=“foto” style=“width:100%” mode=“advanced” fileUploadListener="#{adolescenteBean.upload}" update=“messages” auto=“true”/>
E aqui o metodo que faz a atribuição do arquivo da foto na variavel para compor o objeto e gravar no banco:
public void upload(FileUploadEvent evento) {
(esse file é uma variavel do tipo UploadedFile, foi so um teste)
this.file = evento.getFile();
System.out.println("Nome do arquivo: " + file.getFileName());
this.adolescente.setFoto(file.getContents()); //array de bytes
}
até aqui, onde o arquivo é recebido pelo metodo vai tranquilo, agora fazer a variavel receber
esse aquivo pelo parametro e “setar” no objeto é que ta pegando…tipo a variavel this.adolescente.setFoto(), eu ja coloquei todas as opções desse parametro e nada faz ele gravar no banco de dados.
Se alguém puder me dar uma luz mais uma vez eu agradeço.
att
PAULO