Dificuldade com método que faz o resultSet

4 respostas
L

Amigos desculpem mas não sei qual é a tag que uso para postar código!

Acontece comigo o seguinte:
tenho um método que retorna uma Collection dos dados armazenados em uma tabela, ele pede um segundo return e eu já coloquei este return em todos os lugares que imagino: no catch, no finally e mesmo no final do método, alguém pode me ajudar?
O código vai abaixo:

public java.util.Collection<Object> getAll(Object obj) {
		EntityManager em = emf.createEntityManager();
		java.util.Collection<Object> lst;
		

		try {
			em.getTransaction().begin();
			lst = em.createNamedQuery("obj.findAll").getResultList();
			em.getTransaction().commit();
			return lst;
		}catch(Exception e) {
			e.printStackTrace();
			em.getTransaction().rollback();			 
		}finally {
			em.close();
		}

	}

Por favor me socorram é um trabalho da faculdade!

[Gustavo]

4 Respostas

T

É a tag [ code ] ou então use um daqueles simpáticos botõezinhos:

T
Você pode propagar a exceção:
public  java.util.Collection&lt;Object&gt; getAll(Object obj) {  
     EntityManager em = emf.createEntityManager();  
     java.util.Collection&lt;Object&gt; lst = null;  
   
     try {  
         em.getTransaction().begin();  
         lst = em.createNamedQuery("obj.findAll").getResultList();  
         em.getTransaction().commit();  
     }catch(Exception e) {  
         e.printStackTrace();  
         em.getTransaction().rollback();
         throw new RuntimeException (e); // com isto você está propagando a exceção
     }finally {  
         em.close();  
     }  
     return lst;  
 }
ou então retornar uma coleção vazia, ou então retornar null.
public  java.util.Collection&lt;Object&gt; getAll(Object obj) {  
     EntityManager em = emf.createEntityManager();  
     java.util.Collection&lt;Object&gt; lst = Collections.emptyList(); // uma coleção vazia
       
   
     try {  
         em.getTransaction().begin();  
         // A coleção que você quer obter
         lst = em.createNamedQuery("obj.findAll").getResultList();  
         em.getTransaction().commit();  
     }catch(Exception e) {  
         e.printStackTrace();  
         em.getTransaction().rollback();            
     }finally {  
         em.close();  
     }  
     return lst;  
 }
L

Olá thingol!

Beleza, só teve um problema: a IDE diz que o método empityList() não existe, mas eu substitui esta linha por:
[code]java.util.Collection lst = null;[code]

Aí deu certo!

Valeu pela dica!

[Gustavo]

E
GustavoDoT:
Olá thingol!

Beleza, só teve um problema: a IDE diz que o método empityList() não existe, mas eu substitui esta linha por:
[code]java.util.Collection lst = null;[code]

Aí deu certo!

Valeu pela dica!

[Gustavo]

De fato, "empityList" não existe, mas "emptyList" existe sim:

http://java.sun.com/javase/6/docs/api/java/util/Collections.html#emptyList%28%29

(OK, no Java 1.4.2 esse método não existe, porque ele apareceu no Java 5.0:

http://java.sun.com/j2se/1.5.0/docs/api/java/util/Collections.html#emptyList%28%29 )

Cuidado com erros de ortografia - muitas almas boas já se perderam por vírgulas mal posicionadas e letras fora do lugar.

Criado 25 de junho de 2010
Ultima resposta 25 de jun. de 2010
Respostas 4
Participantes 3