Tengo un hibernate dao parametrizado que realiza operaciones crud básicas, y cuando se parametriza se utiliza como un delegado para cumplir las operaciones crud básicas para un dao dado.Derivación de clases desde genérico T
public class HibernateDao <T, ID extends Serializable> implements GenericDao<T, ID>
Quiero ser capaz de derivar la clase de T en tiempo de ejecución para crear consultas de criterios en hibernación, tal que:
public T findByPrimaryKey(ID id) {
return (T) HibernateUtil.getSession().load(T.getClass(), id);
}
sé:
T.getClass()
no existe, pero, ¿hay alguna forma de derivar el objeto Class correcto de T en el tiempo de ejecución?
He examinado los genéricos y la reflexión, pero no he encontrado una solución adecuada, quizás me falta algo.
Gracias.
Si esta es una solución que tengo. Preferiría poder derivar la clase de T si es posible, sin agregar la dependencia de Clase. – bowsie
@bowsie: entiendo tu dolor. Desafortunadamente, el compilador completa borra todos los rastros de T. Se llama borrado de tipo: http://java.sun.com/docs/books/tutorial/java/generics/erasure.html –
Ahh bien, gracias Adam. – bowsie