Jpa

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());
	}

}