Bonjour,
je code actuellement des DAO . Il y en a un bon paquets et j'essaie de réduire le nombre de code en utilisant des "generic".
Pour l'instant, j'ai les déclarations de ce style:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 public class ActionDaoImpl implementsActionIntDao,Serializable,GenericIntDao<Action> { @Override public ArrayList<Action> findAll() { String sql = "SELECT * FROM action"; return (ArrayList<Action>) jdbcTemplate.queryForList(sql, new Object[] {}, Action.class); } }
Que je souhaiterais remplacer par quelque chose du style
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 public class DaoImpl<T> implements Serializable,GenericIntDao<T> { }
J'ai deux problèmes:
1) la méthode "findAll" (et d'autres) contient une référence à la classe "Action".
je n'arrive pas à substituer Action.class par une référence à la classe générique <T>
Code : Sélectionner tout - Visualiser dans une fenêtre à part jdbcTemplate.queryForList(sql, new Object[] {}, Action.class)
2) les requêtes SQL contiennent le nom de la table qui est le même qu'une pojo, ici, classe "Action" et table action.
Est-il possible d'extraire ce nom sous forme de String de la classe générique <T>?
merci d'avance.
Partager