Olá pessoal, não estou conseguindo recuperar as entidades em list. Até consigo recuperar a entodade tipoUsuario mais a list vem vazia, o que estou fazendo de errado???Estou utilizando o mySql.
tipoUsuario.java
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",fetch=FetchType.LAZY,cascade={CascadeType.ALL})
private List<usuarios> usuarios = new ArrayList<usuarios>();
/**
* @return the usuarios
*/
public List<usuarios> getUsuarios() {
return usuarios;
}
/**
* @param usuarios the usuarios to set
*/
public void setUsuarios(List<usuarios> 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
}
}
usuarios.java
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(fetch=FetchType.LAZY,cascade={CascadeType.ALL})
@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;
}
public static void main(String[] args) {
// TODO Auto-generated method stub
}
}
Aqui eu tento recuperar o list
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 tipoUsuario").getResultList();
} catch (Exception ex) {
} finally {
em.close();
}
return lista;
}
public tipoUsuario findTipoUsuario(int id) {
tipoUsuario tu = new tipoUsuario();
em = this.getEntityManager();
try {
em.refresh(tu);
tu = em.find(tipoUsuario.class, id);
} catch (Exception ex) {
} finally {
em.close();
}
return tu;
}
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 boolean remove(tipoUsuario tu) {
boolean resultado = true;
em = this.getEntityManager();
em.getTransaction().begin();
try {
tu = em.merge(tu);
em.remove(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("MAESTRO");
tu.setId_tipo_usuarios(6);*/
System.out.println(dao.findTipoUsuario(2).getUsuarios().size());
}
}
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",fetch=FetchType.LAZY,cascade={CascadeType.ALL})
private List<usuarios> usuarios = new ArrayList<usuarios>();
/**
* @return the usuarios
*/
public List<usuarios> getUsuarios() {
return usuarios;
}
/**
* @param usuarios the usuarios to set
*/
public void setUsuarios(List<usuarios> 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
}
}
usuarios.java
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(fetch=FetchType.LAZY,cascade={CascadeType.ALL})
@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;
}
public static void main(String[] args) {
// TODO Auto-generated method stub
}
}
Aqui eu tento recuperar o list
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 tipoUsuario").getResultList();
} catch (Exception ex) {
} finally {
em.close();
}
return lista;
}
public tipoUsuario findTipoUsuario(int id) {
tipoUsuario tu = new tipoUsuario();
em = this.getEntityManager();
try {
em.refresh(tu);
tu = em.find(tipoUsuario.class, id);
} catch (Exception ex) {
} finally {
em.close();
}
return tu;
}
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 boolean remove(tipoUsuario tu) {
boolean resultado = true;
em = this.getEntityManager();
em.getTransaction().begin();
try {
tu = em.merge(tu);
em.remove(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("MAESTRO");
tu.setId_tipo_usuarios(6);*/
System.out.println(dao.findTipoUsuario(2).getUsuarios().size());
}
}