DAO Generico Hibernate annotations

2 respostas
diogoprosoft

Galera, como posso deixar esse meu metodo todo genérico para não precisar usar o Usuario, preciso deixar tudo genérico para não precisar criar um metodo para cada classe

Meu metodo

public Object buscar(Class clazz,Long pk) throws Exception  {             
         try {            
          Usuario obj = (Usuario) sessao.get(clazz, pk );  
          sessao.flush();  
          transacao.commit();  
          return  obj;  
     } finally {  
          sessao.close();  
     }
   }

Tem esse aqui, mais não consegui implementa-lo

public <T> find(Class<T> clazz, Integer pk) throws Exception  
 {  
     sessao = HibernateUtil.getSession();  
     try {  
          transacao = sessao.beginTransaction();  
          T obj = sessao.load(clazz, pk );  
          sessao.flush();  
          transacao.commit();  
          return  obj  
     } finally {  
          sessao.close();  
     }  
 }

Como posso fazer isso? :smiley:

2 Respostas

diogoprosoft

Consegui fazer!!!

Ficou Assim:

public Object buscar(Class clazz,Long pk) throws Exception  {               
            try {              
            Seriazable obj = (Seriazable) sessao.get(clazz, pk );    
             sessao.flush();    
             transacao.commit();    
             return  obj;    
        } finally {    
             sessao.close();    
        }  
  }
Lucas_Cavalcanti

O método genérico seria:

public <T> T find(Class<T> clazz, Integer pk) throws Exception    
 {    
     sessao = HibernateUtil.getSession();    
     try {    
          transacao = sessao.beginTransaction();    
          T obj = clazz.cast(sessao.load(clazz, pk ));    
          sessao.flush();    
          transacao.commit();    
          return  obj    
     } finally {    
          sessao.close();    
     }    
 }

e no mais, se vc for retornar Object, vc não precisa dar cast pra nada, é soh deixar

Object obj = sessao.load(clazz, pk);

[]'s

Criado 13 de junho de 2008
Ultima resposta 13 de jun. de 2008
Respostas 2
Participantes 2