J'ai un hibernate dao paramétré qui effectue des opérations élémentaires de crud, et qui, lorsqu'il est paramétré, est utilisé en tant que délégué pour accomplir les opérations de base de crud pour un dao donné.Dérivation d'une classe du générique T
public class HibernateDao <T, ID extends Serializable> implements GenericDao<T, ID>
Je veux être en mesure de tirer classe de T lors de l'exécution pour créer criteria dans Hibernate, tels que:
public T findByPrimaryKey(ID id) {
return (T) HibernateUtil.getSession().load(T.getClass(), id);
}
Je sais:
T.getClass()
n'existe pas, mais existe-t-il un moyen de dériver l'objet Class correct de T à l'exécution? J'ai examiné les génériques et la réflexion, mais je n'ai pas trouvé de solution appropriée, peut-être qu'il me manque quelque chose.
Merci.
Oui c'est une solution que j'ai. Je préférerais pouvoir dériver la classe de T si possible, sans ajouter la dépendance de classe. – bowsie
@bowsie: Je comprends votre douleur. Malheureusement, le compilateur complète efface toutes les traces de T. On l'appelle effacement de type: http://java.sun.com/docs/books/tutorial/java/generics/erasure.html –
Ahh d'accord, merci Adam. – bowsie