Dúvida JPA

0 respostas
C

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 <a href="http://javax.persistence.Id">javax.persistence.Id</a>;

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> 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

}

}

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<usuarios> findAll()
{   		
    em = this.getEntityManager();		
    List<usuarios> lista = new ArrayList<usuarios>();	    
	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!!!

Criado 17 de novembro de 2009
Respostas 0
Participantes 1