1
1
using System ;
2
2
using System . Collections . Generic ;
3
- using System . Text ;
4
3
using NHibernate . Engine ;
5
4
using NHibernate . SqlCommand ;
6
5
using NHibernate . Type ;
7
- using NHibernate . Util ;
8
6
9
7
namespace NHibernate . Criterion
10
8
{
11
9
[ Serializable ]
12
- public class GroupedProjection : IProjection
10
+ public class GroupedProjection : IProjection
13
11
{
14
12
private readonly IProjection projection ;
13
+ private SqlString renderedProjection ;
15
14
16
15
public GroupedProjection ( IProjection projection )
17
16
{
@@ -20,12 +19,13 @@ public GroupedProjection(IProjection projection)
20
19
21
20
public virtual SqlString ToSqlString ( ICriteria criteria , int position , ICriteriaQuery criteriaQuery , IDictionary < string , IFilter > enabledFilters )
22
21
{
23
- return projection . ToSqlString ( criteria , position , criteriaQuery , enabledFilters ) ;
22
+ return renderedProjection = projection . ToSqlString ( criteria , position , criteriaQuery , enabledFilters ) ;
24
23
}
25
24
26
25
public virtual SqlString ToGroupSqlString ( ICriteria criteria , ICriteriaQuery criteriaQuery , IDictionary < string , IFilter > enabledFilters )
27
26
{
28
- return SqlStringHelper . RemoveAsAliasesFromSql ( this . projection . ToSqlString ( criteria , 0 , criteriaQuery , enabledFilters ) ) ;
27
+ //This is kind of a hack. The hack is based on the fact that ToGroupSqlString always called after ToSqlString.
28
+ return SqlStringHelper . RemoveAsAliasesFromSql ( renderedProjection ) ;
29
29
}
30
30
31
31
public virtual IType [ ] GetTypes ( ICriteria criteria , ICriteriaQuery criteriaQuery )
@@ -35,7 +35,7 @@ public virtual IType[] GetTypes(ICriteria criteria, ICriteriaQuery criteriaQuery
35
35
36
36
public virtual IType [ ] GetTypes ( String alias , ICriteria criteria , ICriteriaQuery criteriaQuery )
37
37
{
38
- return this . projection . GetTypes ( alias , criteria , criteriaQuery ) ;
38
+ return this . projection . GetTypes ( alias , criteria , criteriaQuery ) ;
39
39
}
40
40
41
41
public string [ ] GetColumnAliases ( int position , ICriteria criteria , ICriteriaQuery criteriaQuery )
@@ -50,7 +50,7 @@ public string[] GetColumnAliases(string alias, int position, ICriteria criteria,
50
50
51
51
public virtual string [ ] Aliases
52
52
{
53
- get { return new string [ ] { } ; }
53
+ get { return new string [ ] { } ; }
54
54
}
55
55
56
56
public virtual bool IsGrouped
0 commit comments