Estou fazendo upload de uma imagem, mais não estou conseguindo gravá - la no banco de dados
View
<h:outputText value="Imagem: " />
<br />
<p:fileUpload id="imagem" label="Buscar" fileUploadListener="#{solicitacaoController.upload}" multiple="false"
allowTypes="*.jpg;*.png;*.gif;" description="Images" update="imagemNome" auto="true"/>
<h:panelGrid columns="1" >
<h:outputText id="imagemNome" value="#{solicitacaoController.nomeImagem}" />
<h:commandLink id="excluirImg" action="#{solicitacaoController.excluirImagem}" value="Excluir Imagem" immediate="true"/>
</h:panelGrid>
Faces Bean
@ManagedBean(name="solicitacaoController")
@RequestScoped
public class SolicitacaoController {
...
private byte[] byteImg;
private String nomeImagem;
private Solicitacao solicitacao;
public SolicitacaoController() {
init();
}
private void init(){
solicitacao = new Solicitacao();
solicitacao.setTipoSolicitacao("INCLUIR");
solicitacao.setSolicitante(getUsuarioLogado());
solicitacoes = new ArrayList<Solicitacao>();
nomeImagem = null;
byteImg = null;
}
public void upload(FileUploadEvent event) {
try{
nomeImagem = event.getFile().getFileName();
byteImg = event.getFile().getContents();
}catch (Exception e){
e.printStackTrace();
}
}
public String salvar() {
if(byteImg != null){
solicitacao.setImagem(byteImg);
}
try{
Session session = HibernateUtil.getSessionFactory().openSession();
session.beginTransaction();
session.save(solicitacao);
session.getTransaction().commit();
init();
FacesContext.getCurrentInstance().addMessage(null, new FacesMessage("Solicitação Enviada com Sucesso!"));
}catch(Exception e){
FacesContext.getCurrentInstance().addMessage(null,
new FacesMessage("Instabilidades no Envio da Solicitação,por favor entre em Contato com o Departamento de T.I."));
}
return "index";
}
...
Entity
public class Solicitacao implements Serializable{
...
private byte[] imagem;
@Lob
public byte[] getImagem() {
return imagem;
}
public void setImagem(byte[] imagem) {
this.imagem = imagem;
}
...
}