[code]Olá pessoal, estou com um problema para recuperar um list de usuários da seguinte forma:
tenho uma entidade usuarios com um campo ManyToOne que retorna um tipo_usuarios, na qual consigo executar o método findAll() normalmente, e uma entidade tipo_usuarios com um campo OneToMany que retorna um List, na qual não consigo executar o método findAll(), pois só retorna um list vazio. Não sei mais o que fazer pois minhas tabelas estão populadas, até mesmo porque no tupo_usuarios os outros métodos estão funcionando normalmente, o problema é só com findAll(), o que será que está acontecendo???
package aftiv.login;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Date;
import java.io.Serializable;
import aftiv.db.db;
import javax.persistence.*;
@Entity
@Table(name = “usuarios”)
public class usuarios implements Serializable {
/**
*
*/
private static final long serialVersionUID = 1L;
@Id
private String id_usuario = “”;
private String username = “”;
private String senha = “”;
@ManyToOne
@JoinColumn(name = “tipo_usuarios_id_tipo_usuarios”)
private tipoUsuario tipoUsuario;
private Date data_inclusao = new Date();
@Column(name = “USERNAME”)
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
@Column(name = “SENHA”)
public String getSenha() {
return senha;
}
public void setSenha(String senha) {
this.senha = senha;
}
public usuarios localizarUsuario(String usuario, String senha) {
db banco = new db(“jdbc:mysql://localhost/aftiv”, “masterkey”, “root”,
“com.mysql.jdbc.Driver”);
Connection conn = banco.conectar();
Statement stm = null;
ResultSet rs = null;
usuarios user = new usuarios();
try {
stm = conn.createStatement();
rs = stm.executeQuery(“select * from usuarios where username = '”
- usuario + “’ and senha = '” + senha + “’”);
} catch (SQLException ex) {
}
try {
while (rs.next()) {
user.setSenha(rs.getString(“SENHA”));
user.setUsername(rs.getString(“USERNAME”));
user.setId_usuario(rs.getString(“ID_USUARIO”));
user.getTipoUsuario().setId_tipo_usuarios(rs
.getInt(“TIPO_USUARIOS_ID_TIPO_USUARIOS”));
}
} catch (Exception ex) {
return null;
}
return user;
}
/**
-
@return the tipoUsuario
*/
public tipoUsuario getTipoUsuario() {
return tipoUsuario;
}
/**
-
@param tipoUsuario the tipoUsuario to set
*/
public void setTipoUsuario(tipoUsuario tipoUsuario) {
this.tipoUsuario = tipoUsuario;
}
@Temporal(TemporalType.DATE)
@Column(name = “DATA_INCLUSAO”)
public Date getData_inclusao() {
return data_inclusao;
}
/**
- @param data_inclusao
- the data_inclusao to set
*/
public void setData_inclusao(Date data_inclusao) {
this.data_inclusao = data_inclusao;
}
//@Id
/*
-
-
@return the id_usuario
*/
public String getId_usuario() {
return id_usuario;
}
/**
- @param id_usuario
- the id_usuario to set
*/
public void setId_usuario(String id_usuario) {
this.id_usuario = id_usuario;
}
}
package aftiv.login;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.OneToMany;
import javax.persistence.Table;
@Entity
@Table(name = “tipo_usuarios”)
public class tipoUsuario implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@Column(name=“ID_TIPO_USUARIOS”,nullable=false)
@GeneratedValue(strategy=GenerationType.AUTO)
private int id_tipo_usuarios = 0;
@Column(name = “TIPO”)
private String tipo = “”;
@OneToMany(mappedBy=“tipoUsuario”)
private List usuarios = new ArrayList();
/**
-
@return the usuarios
*/
public List getUsuarios() {
return usuarios;
}
/**
-
@param usuarios the usuarios to set
/
public void setUsuarios(List usuarios) {
this.usuarios = usuarios;
}
/* -
@return the idTipoUsuario
/
public int getId_tipo_usuarios() {
return id_tipo_usuarios;
}
/* -
@param idTipoUsuario the idTipoUsuario to set
*/
public void setId_tipo_usuarios(int id_tipo_usuarios) {
this.id_tipo_usuarios = id_tipo_usuarios;
}
/**
-
@return the tipo
/
public String getTipo() {
return tipo;
}
/* -
@param tipo the tipo to set
/
public void setTipo(String tipo) {
this.tipo = tipo;
}
/* -
@param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
}
}
a classe Dao:
package aftiv.dao;
import java.util.ArrayList;
import java.util.List;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;
import aftiv.login.tipoUsuario;
import aftiv.login.usuarios;
public class tipoUsuarioDao {
private EntityManagerFactory emf;
private EntityManager em;
public tipoUsuarioDao()
{
emf = Persistence.createEntityManagerFactory(“jpa”);
}
private EntityManager getEntityManager() {
return emf.createEntityManager();
}
public List findAll()
{
em = this.getEntityManager();
List lista = new ArrayList();
try {
lista = em.createQuery(“FROM tipo_usuarios t”).getResultList();
} catch (Exception ex) {
} finally {
em.close();
}
return lista;
}
public boolean persist(tipoUsuario tu)
{
boolean resultado = true;
em = this.getEntityManager();
em.getTransaction().begin();
try {
em.persist(tu);
em.getTransaction().commit();
} catch (Exception ex) {
em.getTransaction().rollback();
resultado = false;
} finally {
em.close();
}
return resultado;
}
public static void main(String[] args) {
// TODO Auto-generated method stub
tipoUsuarioDao dao = new tipoUsuarioDao();
tipoUsuario tu = new tipoUsuario();
tu.setTipo(“GESTOR DE COMPRAS”);
System.out.println(dao.findAll());
}
}
O que será que está acontecendo??? Meu Banco é o MySql!!! [/code]