PAGUE 6 MESES
LEVE 12 MESES
GARANTIR DESCONTO

Fórum Imagens no banco de dados Usando Hibernate JPA CDI Primefaces (Modelo, Repositório, Serviços e Controllers) #520250

19/05/2015

0

Estou com um problema que aparentemente é fácil e querendo ou não encontra-se disponível na internet algumas soluções, porém estou usando as seguintes tecnologias, Hibernate, JPA, CDI com postgres e primefaces, e preciso criar uma maneira de gravar e fazer um load (select) de imagens, o padrão que estou trabalhando é Modelo, Repositório, Serviços e Controles.

A Classe de Entidade;
import java.io.Serializable;
import java.util.Date;

import javax.persistence.Basic;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.Lob;
import javax.persistence.ManyToOne;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;


@Entity
@NamedQueries({
    @NamedQuery(name = "Imagens.findAll", query = "SELECT i FROM Imagens i")})
public class Imagens implements Serializable {
    private static final long serialVersionUID = 1L;
    @Id
    @Basic(optional = false)
    @NotNull
    @GeneratedValue (strategy = GenerationType.SEQUENCE)
    private Integer codimagem;
    @Lob
    private byte[] imagem;
    private Boolean ativo;
    private Integer codusualt;
    @Temporal(TemporalType.TIMESTAMP)
    private Date dtalteracao;
    @Basic(optional = false)
    @NotNull
    private int codusucad;
    @Temporal(TemporalType.TIMESTAMP)
    private Date dtcadastro;
    @Basic(optional = false)
    @NotNull
    private int codempresa;
    @Size(max = 45)
    @Column(name = "codsincro_desktop")
    private String codsincroDesktop;
    private Boolean excluido;
    @JoinColumn(name = "codunidloc", referencedColumnName = "codunidloc")
    @ManyToOne
    private UnidadesPatrimoniais codunidloc;

    public Imagens() {
    }

    public Imagens(Integer codimagem) {
        this.codimagem = codimagem;
    }

    public Imagens(Integer codimagem, int codusucad, int codempresa) {
        this.codimagem = codimagem;
        this.codusucad = codusucad;
        this.codempresa = codempresa;
    }

    public Integer getCodimagem() {
        return codimagem;
    }

    public void setCodimagem(Integer codimagem) {
        this.codimagem = codimagem;
    }

    public byte[] getImagem() {
        return imagem;
    }

    public void setImagem(byte[] imagem) {
        this.imagem = imagem;
    }

    public Boolean getAtivo() {
        return ativo;
    }

    public void setAtivo(Boolean ativo) {
        this.ativo = ativo;
    }

    public Integer getCodusualt() {
        return codusualt;
    }

    public void setCodusualt(Integer codusualt) {
        this.codusualt = codusualt;
    }

    public Date getDtalteracao() {
        return dtalteracao;
    }

    public void setDtalteracao(Date dtalteracao) {
        this.dtalteracao = dtalteracao;
    }

    public int getCodusucad() {
        return codusucad;
    }

    public void setCodusucad(int codusucad) {
        this.codusucad = codusucad;
    }

    public Date getDtcadastro() {
        return dtcadastro;
    }

    public void setDtcadastro(Date dtcadastro) {
        this.dtcadastro = dtcadastro;
    }

    public int getCodempresa() {
        return codempresa;
    }

    public void setCodempresa(int codempresa) {
        this.codempresa = codempresa;
    }

    public String getCodsincroDesktop() {
        return codsincroDesktop;
    }

    public void setCodsincroDesktop(String codsincroDesktop) {
        this.codsincroDesktop = codsincroDesktop;
    }

    public Boolean getExcluido() {
        return excluido;
    }

    public void setExcluido(Boolean excluido) {
        this.excluido = excluido;
    }

    public UnidadesPatrimoniais getCodunidloc() {
        return codunidloc;
    }

    public void setCodunidloc(UnidadesPatrimoniais codunidloc) {
        this.codunidloc = codunidloc;
    }

    @Override
    public int hashCode() {
        int hash = 0;
        hash += (codimagem != null ? codimagem.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object object) {
        // TODO: Warning - this method won't work in the case the id fields are not set
        if (!(object instanceof Imagens)) {
            return false;
        }
        Imagens other = (Imagens) object;
        if ((this.codimagem == null && other.codimagem != null) || (this.codimagem != null && !this.codimagem.equals(other.codimagem))) {
            return false;
        }
        return true;
    }

    @Override
    public String toString() {
        return "br.com.fander.model.Imagens[ codimagem=" + codimagem + " ]";
    }
    
}


Classe Repositório;
import java.io.Serializable;
import java.util.List;

import javax.inject.Inject;
import javax.persistence.EntityManager;

import br.com.fander.model.Imagens;

public class ImagensRepositorio implements Serializable {

	private static final long serialVersionUID = 1L;

	@Inject
	private EntityManager manager;

	public Imagens porCodigo(int codigo) {
		return manager.find(Imagens.class, codigo);
	}

	
	public List<Imagens> todas() {
		return manager.createQuery("from Imagens", Imagens.class)
				.getResultList();
	}

	public Imagens guardar(Imagens imagem) {
		return manager.merge(imagem);
	}

	public void remove(Imagens imagem) {
		imagem = porCodigo(imagem.getCodimagem());
		manager.remove(imagem);
	}

}


Classe Serviço;
import java.io.Serializable;

import javax.inject.Inject;

import br.com.fander.model.Imagens;
import br.com.fander.repository.ImagensRepositorio;
import br.com.fander.util.Transacional;

public class ImagensService implements Serializable {

	private static final long serialVersionUID = 1L;

	@Inject
	private ImagensRepositorio imagemRepositorio;

	@Transacional
	public void salvar(Imagens imagem) {
		imagemRepositorio.guardar(imagem);
	}

	@Transacional
	public void excluir(Imagens imagem) {
		imagemRepositorio.remove(imagem);
	}

}


Classe controle;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;

import javax.faces.bean.ManagedBean;
import javax.faces.view.ViewScoped;
import javax.inject.Inject;
import javax.inject.Named;

import br.com.fander.model.Imagens;
import br.com.fander.repository.ImagensRepositorio;
import br.com.fander.service.ImagensService;
import br.com.fander.util.FacesMessages;

@Named
@ViewScoped
public class ConsultaImagensBean implements Serializable {

	private static final long serialVersionUID = 1L;

	@Inject
	private ImagensRepositorio imagens;

	@Inject
	private ImagensService imagemServices;

	@Inject
	private FacesMessages messages;

	private List<Imagens> todasImagens = new ArrayList<Imagens>();
	private Imagens imagemEdicao = new Imagens();
	private Imagens imagemSelecionada;

	
	public void consultar (){
		todasImagens = imagens.todas();
	}
	
	
	
	public ImagensRepositorio getImagens() {
		return imagens;
	}

	public void setImagens(ImagensRepositorio imagens) {
		this.imagens = imagens;
	}

	public ImagensService getImagemServices() {
		return imagemServices;
	}

	public void setImagemServices(ImagensService imagemServices) {
		this.imagemServices = imagemServices;
	}

	public FacesMessages getMessages() {
		return messages;
	}

	public void setMessages(FacesMessages messages) {
		this.messages = messages;
	}

	public List<Imagens> getTodasImagens() {
		return todasImagens;
	}

	public void setTodasImagens(List<Imagens> todasImagens) {
		this.todasImagens = todasImagens;
	}

	public Imagens getImagemEdicao() {
		return imagemEdicao;
	}

	public void setImagemEdicao(Imagens imagemEdicao) {
		this.imagemEdicao = imagemEdicao;
	}

	public Imagens getImagemSelecionada() {
		return imagemSelecionada;
	}

	public void setImagemSelecionada(Imagens imagemSelecionada) {
		this.imagemSelecionada = imagemSelecionada;
	}

}


Baseado nesse padrão, como ficaria o meu xhtml usando por exemplo o p:galleria?


Quem poder me orientar, me dá esse suporte, ficarei muito grato!
André Dutra

André Dutra

Responder

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar