Fala galera, sou novo aqui… pesquisei muito e vi vários exemplos, porem não consegui salvar a imagem no banco de dados. então vou postar meu codigo aqui se alguém puder ajudar!
pagina.xhml
<p:fileUpload fileUploadListener="#{prodBena.produto.imagem}" auto=“true"
allowTypes=”.jpg;.png;*.gif;" cancelLabel=“cancelar” uploadLabel=“salvar” label=“proucurar”/>
class controlle
@ManagedBean
@SessionScoped
public class prodBena implements Serializable {
Produto produto = new Produto();
private TipoProd tipo;
private List<Produto> produtos;
private StreamedContent imagem;
HDAO dao = new HDAO();
public prodBena(){
HDAO dao = new HDAO();
}
public void handleFileUpload(FileUploadEvent event) {
try {
produto.setFoto(event.getFile().getContents());
imagem = new DefaultStreamedContent(event.getFile().getInputstream());
byte[] imagem = event.getFile().getContents();
this.produto.setFoto(imagem);
} catch (IOException ex) {
Logger.getLogger(GerenciamentoProd.class.getName()).log(Level.SEVERE, null, ex);
}
}
public void inserir() {
produto.setTipo(tipo);
dao.inserir(produto);
this.produto = new Produto();
}
dao generico
public class HDAO {
Object object;
Session session;
public HDAO() {
this.session = HibernateUtil.getSession();
}
public boolean inserir(Object obj) {
try {
this.session.beginTransaction();
this.session.saveOrUpdate(obj);
this.session.getTransaction().commit();
return true;
} catch (Exception e) {
e.printStackTrace();
return false;
}
}
public boolean deleta(Object obj) {
try {
this.session.beginTransaction();
this.session.delete(obj);
this.session.getTransaction().commit();
return true;
} catch (Exception e) {
return false;
}
}
public boolean alterar(Object obj) {
try {
this.session.beginTransaction();
this.session.update(obj);
this.session.getTransaction().commit();
return true;
} catch (Exception e) {
return false;
}
}
public <T> List<T> buscar(Class<T> c) {
this.session.beginTransaction();
try {
return this.session.createCriteria(c).list();
} catch (Exception e) {
return null;
} finally {
this.session.getTransaction().commit();
}
}
public List buscar(String filtro, Object value, boolean ifvalueString, Object obj) {
if (ifvalueString) {
value = "%" + value + "%";
}
try {
this.session.beginTransaction();
List list = this.session.createCriteria(obj.getClass()).add(Restrictions.like(filtro, value)).list();
this.session.getTransaction().commit();
return list;
} catch (Exception e) {
return null;
}
}
public Object buscarUnidade(String filtro, Object value, boolean ifvalueString, Object obj) {
//if(ifvalueString)
//{ value = "%"+value+"%";}
try {
this.session.beginTransaction();
Object list = this.session.createCriteria(obj.getClass()).add(Restrictions.like(filtro, value)).uniqueResult();
this.session.getTransaction().commit();
return list;
} catch (Exception e) {
return null;
}
}
public Object buscar(Object obj, int id) {
try {
this.session.beginTransaction();
obj = this.session.load(obj.getClass(), id);
this.session.getTransaction().commit();
return obj;
} catch (Exception e) {
return null;
}
}
public Object merge(Object entidade){
Transaction transacao = null;
try{
transacao = session.beginTransaction();
Object retorno = (Object) session.merge(object);
transacao.commit();
return retorno;
}catch (RuntimeException erro){
if(transacao != null){
transacao.rollback();
}
throw erro;
}finally{
session.close();
}
}
}
Bom galera todos os campos estão salvando porem a imagem não vai!