Bonjour, voici mon probleme :
Je souhaite utiliser une requête sql native pour récupérer une liste d'éléments comprenant 4 champs (dont des valeurs correspond à des "COUNT" et des "SUM").

J'ai donc créé un classe nommée Application.class :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 
import java.util.Date;
public class Application {
	private String name;
	private int nbLogs;
	private int nbErrors;
	private Date lastDate;
//... plus getters et setters...
et dans l'implémentation de mon DAO, j'ai le code suivant :
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
21
 
		 String sql = "SELECT APPLICATION as {app.name}, " +
		              "COUNT(DISTINCT(EVENT_ID)) as {app.nbLogs}, " + 
		              "SUM(DECODE(SEVERITY, 'ERROR', 1, 0)) as {app.nbErrors}, " +
		              "MAX(DATETIME) as {app.lastDate} " +
		              "FROM " +
		              "(SELECT APPLICATION,EVENT_ID, SEVERITY, DATETIME"+   
		              " FROM TECHNICAL_LOGS "+
		              " WHERE  ENV='IT'"+
		              " union all"+
		              " SELECT APPLICATION, EVENT_ID, SEVERITY, DATETIME "+
		              " FROM BUSINESS_LOGS "+
		              " WHERE  ENV='IT'"+
		              ") "+
		              " GROUP BY APPLICATION"+
		              " ORDER BY APPLICATION";	              
 
 
		List <Application>appli = (List <Application>)session.createSQLQuery(sql)
									.addEntity("app",Application.class)
		 							.list();
Malheureusement, ce code ne marche pas...
Pourriez-vous m'expliquer ce que j'ai mal compris dans l'utilisation du addEntity ?

Le code suivant fonctionne correctement mais ne renvois pas une List castée comme Application.class, ce qui est mon but...
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
 
		 String sql = "SELECT APPLICATION as name, " +
		              "COUNT(DISTINCT(EVENT_ID)) as nbLogs, " + 
		              "SUM(DECODE(SEVERITY, 'ERROR', 1, 0)) as nbErrors, " +
		              "MAX(DATETIME) as lastDate " +
		              "FROM " +
		              "(SELECT APPLICATION,EVENT_ID, SEVERITY, DATETIME"+   
		              " FROM VAXIBUS_TECHNICAL_LOGS "+
		              " WHERE  ENV='IT'"+
		              " union all"+
		              " SELECT APPLICATION, EVENT_ID, SEVERITY, DATETIME "+
		              " FROM VAXIBUS_BUSINESS_LOGS "+
		              " WHERE  ENV='IT'"+
		              ") "+
		              " GROUP BY APPLICATION"+
		              " ORDER BY APPLICATION";	              
 
		List appli = session.createSQLQuery(sql).list();