Bonjour,
J'utilise un HQL dynamique pour récupérer les données. Est-il possible de connaître le nombre de colonnes d'un d'un enregistrement ?
Merci
Bonjour,
J'utilise un HQL dynamique pour récupérer les données. Est-il possible de connaître le nombre de colonnes d'un d'un enregistrement ?
Merci
Peut etre si tu montrais ton code et quel classe tu utilises, on pourrais t'aider.
Voici le code. L'objet entity est un object dto dont le nombre d'attributs peut varier. J'aimerais savoir le nombre de colonnes ainsi que le nom des colonnes retournés.
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 public List getEntities(EntityDTO dto) throws DAOException { // Get a Hibernate Sessiontry { String hql = "select m from " + dto.getEntityName() + " as m"; // Get a Hibernate SessionSession session = HibernateDAOFactory.getInstance().openSession(); Query query = session.createQuery(hql); List lst = query.list(); lst.size();return lst; } catch (Exception e) { thrownew DAOException(e.getMessage()); } finally { finallyClose(); } }
Apparement l'objet Query ne te permet de recuperer le nombre d'attributs.
Donc du cote d'Hibernate, je pense pas que ce soit possible.
Par contre peut etre avec ton objet et getClass() il y'a quelquechose.
Sinon il faut que tu implemente quelque chose au niveau de ton Entity.
Merci pour la réponse, ça m'a mis sur la voie. Je peux très bien utiliser quele chose comme ça pour avoir les attributs de ma classse.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 Class c = Class.forName(o.getClass().getName()); java.lang.reflect.Field[] f = c.getDeclaredFields(); for (int i = 0; i < f.length; i++) { System.out.println(f[i].getName().toString()); }
Partager