Imagens no banco de dados Usando Hibernate JPA CDI Primefaces (Modelo, Repositório, Serviços e Controllers)
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;
Classe Repositório;
Classe Serviço;
Classe controle;
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!
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
Curtidas 0