Bom dia galera blz ?
Estou com um pequeno problema.Eu tenho um sistema (exemplo) em que os usuários fazem especie de cadastro de chamados.Porem o dataTable está retornando todos os chamados independente do usuario que acesso o sistema.
Creio que esta faltando alguma coisinha para que os chamados exibidos sejam apenas aqueles que o usuário logado realmente cadastrou.
Segue os dados.
UsuarioBean
[code] public Usuarios() {
}
public Usuarios(String login) {
this.login = login;
}
public Usuarios(String login, String senha, String autorizacao) {
this.login = login;
this.senha = senha;
this.autorizacao = autorizacao;
}
public String getLogin() {
return login;
}
public void setLogin(String login) {
this.login = login;
}
public String getSenha() {
return senha;
}
public void setSenha(String senha) {
this.senha = senha;
}
public String getAutorizacao() {
return autorizacao;
}
public void setAutorizacao(String autorizacao) {
this.autorizacao = autorizacao;
}
@XmlTransient
public Collection<Chamado> getChamadoCollection() {
return chamadoCollection;
}
public void setChamadoCollection(Collection<Chamado> chamadoCollection) {
this.chamadoCollection = chamadoCollection;
}
@Override
public int hashCode() {
int hash = 0;
hash += (login != null ? login.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 Usuarios)) {
return false;
}
Usuarios other = (Usuarios) object;
if ((this.login == null && other.login != null) || (this.login != null && !this.login.equals(other.login))) {
return false;
}
return true;
}
@Override
public String toString() {
return "beans.Usuarios[ login=" + login + " ]";
}
}[/code]
ChamadoBean
[code]@Entity
@Table(name = “chamado”)
@XmlRootElement
@NamedQueries({
@NamedQuery(name = “Chamado.findAll”, query = “SELECT c FROM Chamado c”),
@NamedQuery(name = “Chamado.findById”, query = “SELECT c FROM Chamado c WHERE c.id = :id”),
@NamedQuery(name = “Chamado.findByDataChamado”, query = “SELECT c FROM Chamado c WHERE c.dataChamado = :dataChamado”)})
public class Chamado implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Basic(optional = false)
@Column(name = “id”)
private Integer id;
@Lob
@Column(name = “assunto”)
private String assunto;
@Column(name = “dataChamado”)
@Temporal(TemporalType.DATE)
private Date dataChamado;
@Lob
@Column(name = “duvida”)
private String duvida;
@JoinColumn(name = “loginUsuario”, referencedColumnName = “login”)
@ManyToOne
private Usuarios loginUsuario;
public Chamado() {
}
public Chamado(Integer id) {
this.id = id;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getAssunto() {
return assunto;
}
public void setAssunto(String assunto) {
this.assunto = assunto;
}
public Date getDataChamado() {
return dataChamado;
}
public void setDataChamado(Date dataChamado) {
this.dataChamado = dataChamado;
}
public String getDuvida() {
return duvida;
}
public void setDuvida(String duvida) {
this.duvida = duvida;
}
public Usuarios getLoginUsuario() {
return loginUsuario;
}
public void setLoginUsuario(Usuarios loginUsuario) {
this.loginUsuario = loginUsuario;
}
@Override
public int hashCode() {
int hash = 0;
hash += (id != null ? id.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 Chamado)) {
return false;
}
Chamado other = (Chamado) object;
if ((this.id == null && other.id != null) || (this.id != null && !this.id.equals(other.id))) {
return false;
}
return true;
}
@Override
public String toString() {
return "beans.Chamado[ id=" + id + " ]";
}
}[/code]
DaoChamado
[code]package dao;
import java.util.List;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;
import javax.persistence.Query;
import beans.Chamado;
import static dao.DAOChamado.emf;
import static dao.DAOChamado.mensagem;
/**
- Esta classe representa um DAO genérico que pode ser utilizado para
- manipular dados de qualquer javabean da aplicação
*/
public class DAOChamado
{
public static EntityManagerFactory emf;
public static String mensagem;
static{
emf = Persistence.createEntityManagerFactory(“CanalColaboradorPU”);
EntityManager em = emf.createEntityManager();
mensagem = “”;
}
public static boolean create(Chamado chamado) {
EntityManager em = null;
try {
em = emf.createEntityManager();
em.getTransaction().begin();
em.persist(chamado); //Executa a query
em.getTransaction().commit(); //Persiste os dados definitivamente
return true;
} catch (Exception ex) {
System.err.println("Erro: " + ex.getMessage());
ex.printStackTrace();
} finally {
em.close();
}
return false;
}
/**
* Este método retorna um JavaBean buscado no banco de dados
- a partir de sua chave
- @param c A classe da qual o JavaBean pertence
- @param id A chave de busca
-
@return O JavaBean buscado ou null caso ele não seja encontrado
*/
public static Object retrieve(Class c, Object id) {
EntityManager em = null;
try
{
em = emf.createEntityManager();
Object obj = em.find(c, id); //Busca o JavaBean
return obj;
}
catch (Exception ex)
{
System.err.println("Erro: " + ex.getMessage());
ex.printStackTrace();
}
finally
{
em.close();
}
return null;
}
/**
* Este método atualiza os dados de um JavaBean no banco de dados
- @param bean O JavaBean cujos dados serão atualizados
-
@return true se os dados forem atualizados ou false caso contrário
*/
public static boolean update(Object bean)
{
EntityManager em = null;
try
{
em = emf.createEntityManager();
em.getTransaction().begin();
em.merge(bean); //Executa a query
em.getTransaction().commit(); //Atualiza o banco de fato
return true;
}
catch (Exception ex)
{
System.err.println("Erro: " + ex.getMessage());
ex.printStackTrace();
}
finally
{
em.close();
}
return false;
}
/**
* Este método remove os dados de um JavaBean do banco de dados
- @param bean O JavaBean cujos dados serão removidos do banco de dados
-
@return true se os dados forem removidos com sucesso e false caso contrário
*/
public static boolean delete(Object bean)
{
EntityManager em = null;
try
{
em = emf.createEntityManager();
em.getTransaction().begin();
Object obj = em.merge(bean);
em.remove(obj); //Executa a query
em.getTransaction().commit();
return true;
}
catch (Exception ex)
{
System.err.println("Erro: " + ex.getMessage());
ex.printStackTrace();
}
finally
{
em.close();
}
return false;
}
public static List list(Class classe){
String aux = “select classe from " + classe.getSimpleName() + " as classe”;
EntityManager em = null;
List lista = null;
try
{
em = emf.createEntityManager();
Query query = em.createQuery(aux);
lista = query.getResultList();
}
catch (Exception ex)
{
System.err.println("Erro: " + ex.getMessage());
ex.printStackTrace();
}
finally
{
em.close();
}
return lista;
}
public static List<Chamado> list() {
EntityManager em = null;
List<Chamado> lista = null;
try {
em = emf.createEntityManager();
lista = em.createQuery("SELECT c FROM Chamado c").getResultList();
} catch (Exception ex) {
System.err.println("Erro: " + ex.getMessage());
ex.printStackTrace();
} finally {
em.close();
}
return lista;
}
public static List executeJPQLQuery(String q, Parametro [] parametros)
{
EntityManager em = null;
List lista = null;
try
{
em = emf.createEntityManager();
Query query = em.createQuery(q);
for(int i=0; i < parametros.length; i++)
{
query.setParameter(parametros[i].getNomeParametro(), parametros[i].getParametro());
}
lista = query.getResultList();
}
catch(Exception ex)
{
System.err.println("Erro: " + ex.getMessage());
ex.printStackTrace();
}
finally
{
em.close();
}
return lista;
}
public static List list(String query)
{
EntityManager em = null;
List lista = null;
try
{
em = emf.createEntityManager();
Query q = em.createNativeQuery(query);
lista = q.getResultList();
}
catch(Exception ex)
{
System.err.println("Erro: " + ex.getMessage());
ex.printStackTrace();
}
finally
{
em.close();
}
return lista;
}
}[/code]
Parte do Xhtml
[code] <h:panelGrid columns=“2” cellpadding=“10”>
<h:form id="form2">
<p:dataTable id="dataTablechamado" var="chamado" value="#{chamadoManagedBean.listaChamado}" widgetVar="cChamado"
emptyMessage="Nada encontrado" paginator="true" rows="10" rowsPerPageTemplate="10,20,30" >
<!-- <f:facet name="header">
<p:outputPanel>
<h:outputText value="Procurar por todos:" />
<p:inputText id="globalFilter" onkeyup= "clientesTable.filter()" style="width:150px" />
</p:outputPanel>
</f:facet> -->
<p:column id="codigo" filterBy="#{chamado.id}"
headerText="Codigo" footerText="Codigo TUSS">
<h:outputText value="#{chamado.id}" />
</p:column>
<p:column id="data" filterBy="#{chamado.dataChamado}"
headerText="Data" footerText="Data">
<h:outputText value="#{chamado.dataChamado}">
<f:convertDateTime pattern="dd/MM/yyyy"/>
</h:outputText>
</p:column>
<p:column id="assunto" filterBy="#{chamado.assunto}"
headerText="Assunto" footerText="Codigo TUSS">
<h:outputText value="#{chamado.assunto}" />
</p:column>
<p:column headerText="Detalhes" style="width:4%">
<p:commandButton id="selectButton" oncomplete="carDialog.show()" icon="ui-icon-search" title="View">
</p:commandButton>
</p:column>
</p:dataTable>
</h:form>
</h:panelGrid>[/code]
Abraços.