Ho un hibernate dao parametrizzato che esegue operazioni di base di crude e quando parametrizzato è usato come delegato per eseguire operazioni di crudità di base per un dato dao.Classe derivante da T generico
public class HibernateDao <T, ID extends Serializable> implements GenericDao<T, ID>
Voglio essere in grado di ricavare classe da T in fase di esecuzione per creare criteri di query in Hibernate, in modo tale che:
public T findByPrimaryKey(ID id) {
return (T) HibernateUtil.getSession().load(T.getClass(), id);
}
so:
T.getClass()
non esiste, ma esiste un modo per ricavare l'oggetto Class corretto da T al runtime?
Ho guardato generici e riflessi ma non ho trovato una soluzione adatta, forse mi manca qualcosa.
Grazie.
Sì questa è una soluzione che ho. Preferirei poter derivare la classe da T se possibile, senza aggiungere la dipendenza di classe. – bowsie
@bowsie: capisco il tuo dolore. Sfortunatamente, il compilatore completo cancella tutte le tracce di T. Si chiama erasure di tipo: http://java.sun.com/docs/books/tutorial/java/generics/erasure.html –
Ah ok, grazie Adam. – bowsie