J'exécute une fonction d'agrégation en java par mise en veille prolongée et pour une raison quelconque, il me donne cette erreur:Hibernate = colonne not found
INFO Binary:182 - could not read column value from result set: l_date; Column 'l_date' not found.
Quand je lance MySQL interroge les noms de colonnes sont l_date et les connexions et Je n'arrive pas à comprendre pourquoi il ne le trouve pas.
J'ai testé la requête dans MySQL et vérifié qu'elle fonctionne. Ma fonction ressemble à ceci.
public List<Logins> getUserLoginsByMonth() {
Session session = getSessionFactory().openSession();
ArrayList<Logins> loginList = null;
try {
String SQL_QUERY = "SELECT l_date as l_month, SUM(logins) as logins FROM (SELECT DATE_FORMAT(login_time, '%M') as l_date, COUNT(DISTINCT users) as logins FROM user_logins WHERE login_time > DATE_SUB(NOW(), INTERVAL 1 YEAR) GROUP BY DATE(login_time)) AS Z GROUP BY(l_month)";
Query query = session.createSQLQuery(SQL_QUERY);
List results = query.list();
for(ListIterator iter = results.listIterator(); iter.hasNext()) {
Objects[] row = (Object[])iter.next();
System.out.println((Date)row[0}]);
System.out.println((BigInteger)row[1]);
}
}
catch(HibernateException e) {
throw new PersistenceDaoException(e);
}
finally {
session.close();
}
}
Existe-t-il une alternative à l'ajout d'addScalar? – Kathir