Realizei os passos do capítulo 4 utilizando o firebird 2.5. Ao executar o código:
ISession session = NHibernateHelper.AbreSession();
String hql = "select p.Categoria as Categoria, count(p) as NumerosDeProdutos from Produto p group by p.Categoria";
IQuery query = session.CreateQuery(hql);
query.SetResultTransformer(Transformers.AliasToBean<ProdutosPorCategoria>());
IList<ProdutosPorCategoria> resultado = query.List<ProdutosPorCategoria>();
session.Close();
Console.Read();
ocorre a seguinte exception:
NHibernate.Exceptions.GenericADOException was unhandled
HResult=-2146232832
Message=could not execute query
[ select produto0_.CategoriaId as col_0_0_, count(produto0_.Id) as col_1_0_, categoria1_.Id as Id2_, categoria1_.Nome as Nome2_ from Produto produto0_ inner join Categoria categoria1_ on produto0_.CategoriaId=categoria1_.Id group by produto0_.CategoriaId ]
[SQL: select produto0_.CategoriaId as col_0_0_, count(produto0_.Id) as col_1_0_, categoria1_.Id as Id2_, categoria1_.Nome as Nome2_ from Produto produto0_ inner join Categoria categoria1_ on produto0_.CategoriaId=categoria1_.Id group by produto0_.CategoriaId]
Source=NHibernate
SqlString=select produto0_.CategoriaId as col_0_0_, count(produto0_.Id) as col_1_0_, categoria1_.Id as Id2_, categoria1_.Nome as Nome2_ from Produto produto0_ inner join Categoria categoria1_ on produto0_.CategoriaId=categoria1_.Id group by produto0_.CategoriaId
StackTrace:
em NHibernate.Loader.Loader.DoList(ISessionImplementor session, QueryParameters queryParameters)
em NHibernate.Loader.Loader.ListIgnoreQueryCache(ISessionImplementor session, QueryParameters queryParameters)
em NHibernate.Loader.Loader.List(ISessionImplementor session, QueryParameters queryParameters, ISet`1 querySpaces, IType[] resultTypes)
em NHibernate.Hql.Ast.ANTLR.Loader.QueryLoader.List(ISessionImplementor session, QueryParameters queryParameters)
em NHibernate.Hql.Ast.ANTLR.QueryTranslatorImpl.List(ISessionImplementor session, QueryParameters queryParameters)
em NHibernate.Engine.Query.HQLQueryPlan.PerformList(QueryParameters queryParameters, ISessionImplementor session, IList results)
em NHibernate.Impl.SessionImpl.List(String query, QueryParameters queryParameters, IList results)
em NHibernate.Impl.SessionImpl.List[T](String query, QueryParameters parameters)
em NHibernate.Impl.QueryImpl.List[T]()
em Loja.Program.Main(String[] args) na c:\Users\mmarcos\Desktop\Alura-NHibernate\Loja\Loja\Program.cs:linha 82
em System.AppDomain._nExecuteAssembly(RuntimeAssembly assembly, String[] args)
em System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)
em Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
em System.Threading.ThreadHelper.ThreadStart_Context(Object state)
em System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
em System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
em System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
em System.Threading.ThreadHelper.ThreadStart()
InnerException: FirebirdSql.Data.FirebirdClient.FbException
HResult=-2147467259
Message=Dynamic SQL Error
SQL error code = -104
Invalid expression in the select list (not contained in either an aggregate function or the GROUP BY clause)
Source=FirebirdSql.Data.FirebirdClient
ErrorCode=335544569
SQLSTATE=42000
StackTrace:
em FirebirdSql.Data.FirebirdClient.FbCommand.ExecuteReader(CommandBehavior behavior)
em FirebirdSql.Data.FirebirdClient.FbCommand.ExecuteDbDataReader(CommandBehavior behavior)
em System.Data.Common.DbCommand.System.Data.IDbCommand.ExecuteReader()
em NHibernate.AdoNet.AbstractBatcher.ExecuteReader(IDbCommand cmd)
em NHibernate.Loader.Loader.GetResultSet(IDbCommand st, Boolean autoDiscoverTypes, Boolean callable, RowSelection selection, ISessionImplementor session)
em NHibernate.Loader.Loader.DoQuery(ISessionImplementor session, QueryParameters queryParameters, Boolean returnProxies)
em NHibernate.Loader.Loader.DoQueryAndInitializeNonLazyCollections(ISessionImplementor session, QueryParameters queryParameters, Boolean returnProxies)
em NHibernate.Loader.Loader.DoList(ISessionImplementor session, QueryParameters queryParameters)
InnerException: FirebirdSql.Data.Common.IscException
HResult=-2146233088
Message=Dynamic SQL Error
SQL error code = -104
Invalid expression in the select list (not contained in either an aggregate function or the GROUP BY clause)
Source=FirebirdSql.Data.FirebirdClient
ErrorCode=335544569
IsWarning=false
SQLSTATE=42000
StackTrace:
em FirebirdSql.Data.Client.Managed.Version10.GdsDatabase.ProcessResponse(IResponse response)
em FirebirdSql.Data.Client.Managed.Version10.GdsDatabase.ReadResponse()
em FirebirdSql.Data.Client.Managed.Version10.GdsDatabase.ReadGenericResponse()
em FirebirdSql.Data.Client.Managed.Version11.GdsStatement.Prepare(String commandText)
em FirebirdSql.Data.FirebirdClient.FbCommand.Prepare(Boolean returnsSet)
em FirebirdSql.Data.FirebirdClient.FbCommand.ExecuteCommand(CommandBehavior behavior, Boolean returnsSet)
em FirebirdSql.Data.FirebirdClient.FbCommand.ExecuteReader(CommandBehavior behavior)
InnerException:
para ser mais preciso, o a exception supracitada ocorre nesta linha de código:
IList<ProdutosPorCategoria> resultado = query.List<ProdutosPorCategoria>();
Obrigado.