Bonjour,

Voici la méthode suivante :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
@SuppressWarnings("unchecked")
    public List<IBase> readAll() throws Exception {
        Session session = HibernateUtil.getNewSession();

        List<IBase> result = new ArrayList<IBase>();

        Criteria criteria = Criteria criteria = session.createCriteria(BaseOrganisme.class);

        List<IBase> list = criteria.list();

        if (list.size() > 0) {
            Iterator<IBase> it = list.iterator();
            while (it.hasNext()) {
                result.add(it.next());
            }
        }

        return result;
    }
J'ai besoin de la rendre factorisable pour qu'elle puisse être appelée par des classes de types différents, donc je fait cela :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
@SuppressWarnings("unchecked")
    public List<IBase> readAll(String nomClasse) throws Exception {
        Session session = HibernateUtil.getNewSession();

        List<IBase> result = new ArrayList<IBase>();

        Criteria criteria = session.createCriteria(Class.forName(nomClasse));

        List<IBase> list = criteria.list();

        if (list.size() > 0) {
            Iterator<IBase> it = list.iterator();
            while (it.hasNext()) {
                result.add(it.next());
            }
        }

        return result;
    }
... mais ce code renvoi l'erreur suivante :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
java.lang.ClassNotFoundException: BaseOrganisme
...
Comment passer le type de la classe en paramètre comme BaseOrganisme.class ?

Merci.

A+