fabiomedeirosf 30 de mar. de 2012
raf4ever 30 de mar. de 2012
fabiomedeirosf:
Olá, há pouco tempo fiz um post sobre no meu blog, dá uma olhada: http://serjava.blogspot.com.br/2011/12/persistencia-jpa-dao-generico.html
[]s
Bacana esse teu exemplo,eu uso um esquema quase igual,só mudo a forma de recuperar a classe que eh passada como parâmetro:
public class GenericDAOImp < T , ID extends Serializable > implements GenericDAO < T , ID > {
@ PersistenceContext
private EntityManager entityManager ;
private final Class < T > classePersistente ;
public GenericDAOImp (){
this . classePersistente = ( Class < T > )
(( ParameterizedType ) getClass () . getGenericSuperclass ())
. getActualTypeArguments ()[ 0 ];
}
peresjuliao 30 de mar. de 2012
Então, tem como voce me mandar os fontes para [email removido]
Abraços
luivilella 30 de mar. de 2012
Eu uso assim:
protected Session sessao = null ;
private Transaction transacao = null ;
public void saveOrUpdate ( Object pObjeto ) throws Exception {
try {
sessao = HibernateUtil . getSessionFactory (). openSession ();
transacao = sessao . beginTransaction ();
sessao . saveOrUpdate ( pObjeto );
transacao . commit ();
} catch ( Exception e ) {
transacao . rollback ();
throw e ;
} finally {
sessao . close ();
}
}
public void delete ( Object pObjeto ) throws Exception {
try {
sessao = HibernateUtil . getSessionFactory (). openSession ();
transacao = sessao . beginTransaction ();
sessao . delete ( pObjeto );
transacao . commit ();
} catch ( Exception e ) {
transacao . rollback ();
throw e ;
} finally {
sessao . close ();
}
}
@SuppressWarnings ( "unchecked" )
protected Object buscaPorId ( Class classe , Long id ) throws Exception {
Object obejto = null ;
try {
sessao = HibernateUtil . getSessionFactory (). openSession ();
obejto = sessao . get ( classe , id );
} catch ( Exception e ) {
obejto = null ;
throw e ;
} finally {
sessao . close ();
}
return obejto ;
}
@SuppressWarnings ( "unchecked" )
public List < Object > filtroNomeGenerico ( Class classe , String stringDePesquisa , String nomeCampoTabela )
throws Exception {
sessao = null ;
ArrayList < Object > lista ;
try {
sessao = HibernateUtil . getSessionFactory (). openSession ();
Criteria criteria = sessao . createCriteria ( classe );
criteria . add ( Restrictions . ilike ( nomeCampoTabela , "%" + stringDePesquisa + "%" ));
lista = ( ArrayList < Object > ) criteria . setResultTransformer ( Criteria . DISTINCT_ROOT_ENTITY ). list ();
} catch ( Exception e ) {
lista = null ;
} finally {
sessao . close ();
}
return lista ;
}
@SuppressWarnings ( "unchecked" )
public List < Object > findAll ( Class classe ) throws Exception {
sessao = null ;
ArrayList < Object > lista = new ArrayList < Object > ();
try {
sessao = HibernateUtil . getSessionFactory (). openSession ();
Criteria criteria = sessao . createCriteria ( classe );
lista = ( ArrayList < Object > ) criteria . setResultTransformer ( Criteria . DISTINCT_ROOT_ENTITY ). list ();
} catch ( Exception e ) {
lista = null ;
} finally {
sessao . close ();
}
return lista ;
}
package util ;
import org.hibernate.SessionFactory ;
import org.hibernate.cfg.AnnotationConfiguration ;
public final class HibernateUtil {
private static final SessionFactory sessionFactory = buildSessionFactory ();
private static SessionFactory buildSessionFactory () {
return new AnnotationConfiguration (). configure (). buildSessionFactory ();
}
public static SessionFactory getSessionFactory () {
return sessionFactory ;
}
}
flawellgeek 17 de mai. de 2012
Viva Pessoal, tenho algumas dúvidas com genericos que é o seguinte:
Considere a classe abaixo:
1- Não percebo para que serve o PK extends Serialiazable;
2- Agora estou a passar o parametro T nos métodos, mas antes estava a passar Object e funcionava na mesma ? Há diferença ?
3- Tenho uma classe ClientDaoImpl que extende BaseDaoImpl como a seguir
public class ClientDaoImpl extends BaseDaoImpl implements Serializable {
...
}
Não deveria ser assim ? Só que isto me dá erro . Este Long ( PK extends Serializable ) serve pra alguma coisa ?
public class ClientDaoImpl extends BaseDaoImpl [ b ]& lt ; Client , Long & gt ; [ /b ] implements Serializable {
...
}
public class BaseDaoImpl & lt ; T , PK extends Serializable & gt ; implements IBaseDao & lt ; T , PK & gt ; {
private Session session = null ;
private Transaction t = null ;
// private Class<T> type;
//
// public BaseDaoImpl(Class<T> type) {
// this.type = type;
// }
public void save ( T object ) {
try {
session = HibernateUtil . getSessionFactory (). openSession ();
t = session . beginTransaction ();
session . save ( object );
t . commit ();
} catch ( HibernateException ex ) {
t . rollback ();
System . out . println ( "HibernateException: " + ex );
} catch ( Exception ex ) {
t . rollback ();
System . out . println ( "Exception: " + ex );
} finally {
session . close ();
}
}
public Object getById ( Class & lt ; T & gt ; classe , Serializable pk ) {
T o = null ;
try {
session = HibernateUtil . getSessionFactory (). openSession ();
o = ( T ) session . load ( classe , pk );
} catch ( HibernateException ex ) {
System . out . println ( "HibernateException: " + ex );
} catch ( Exception ex ) {
System . out . println ( "Exception: " + ex );
} finally {
session . close ();
}
return o ;
}
public List listAll ( String query ) {
ArrayList & lt ; T & gt ; list = new ArrayList & lt ; T & gt ;();
try {
session = HibernateUtil . getSessionFactory (). openSession ();
t = session . beginTransaction ();
list = ( ArrayList & lt ; T & gt ;) session . createQuery ( query ). list ();
//List lista = session.createQuery("from Livro").list();
t . commit ();
} catch ( HibernateException ex ) {
System . out . println ( "HibernateException: " + ex );
} catch ( Exception ex ) {
System . out . println ( "Exception: " + ex );
} finally {
session . close ();
}
return list ;
}
public List listAll ( Class classe ) {
ArrayList & lt ; T & gt ; resultList = new ArrayList & lt ; T & gt ;();
try {
session = HibernateUtil . getSessionFactory (). openSession ();
Criteria c = session . createCriteria ( classe ). add ( Restrictions . eq ( "status" , Constants . ENABLED ));
addOrderToCriteria ( c );
resultList = ( ArrayList & lt ; T & gt ;) c . list ();
} catch ( HibernateException ex ) {
System . out . println ( "HibernateException: " + ex );
} catch ( Exception ex ) {
System . out . println ( "Exception: " + ex );
} finally {
session . close ();
}
System . out . println ( " listAll " + classe . getName () + " - " + resultList . toString ());
return resultList ;
}
public List listAll ( Class & lt ; T & gt ; classe , int first , int max ) {
ArrayList & lt ; T & gt ; resultList = new ArrayList & lt ; T & gt ;();
try {
session = HibernateUtil . getSessionFactory (). openSession ();
Criteria c = session . createCriteria ( classe ). add ( Restrictions . eq ( "status" , Constants . ENABLED ));
addOrderToCriteria ( c );
if ( first != 0 ) {
c . setFirstResult ( first );
}
if ( max != 0 ) {
c . setMaxResults ( max );
}
resultList = ( ArrayList & lt ; T & gt ;) c . list ();
} catch ( HibernateException ex ) {
System . out . println ( "HibernateException: " + ex );
} catch ( Exception ex ) {
System . out . println ( "Exception: " + ex );
} finally {
session . close ();
}
return resultList ;
}
public void remove ( T object ) {
try {
session = HibernateUtil . getSessionFactory (). openSession ();
t = session . beginTransaction ();
session . delete ( object );
t . commit ();
} catch ( HibernateException ex ) {
t . rollback ();
System . out . println ( "HibernateException: " + ex );
} catch ( Exception ex ) {
t . rollback ();
System . out . println ( "Exception: " + ex );
} finally {
session . close ();
}
}
public void update ( T object ) {
try {
session = HibernateUtil . getSessionFactory (). openSession ();
t = session . beginTransaction ();
session . update ( object );
t . commit ();
} catch ( HibernateException ex ) {
t . rollback ();
System . out . println ( "HibernateException: " + ex );
} catch ( Exception ex ) {
t . rollback ();
System . out . println ( "Exception: " + ex );
} finally {
session . close ();
}
}
protected void addOrderToCriteria ( Criteria c ) {
}
}
Muito Obrigado
Flávio