Hi Fabio, What do you mean by changing the meaning of Single ?
Oh and It also happens with First(), and SingleOrDefault() as well It seems to be something to do with this call bool useLimit = UseLimit(selection, dialect); when I use Query<> it returns true, and if I use QueryOver<> it return false ??? I don't really understand how it all works but I've noticed the following. when its called using Query<> selection.firstrow = -1, and selection.MaxRows = 1 but when its called from QueryOver<> selection.FirstRow = 0, and selection.Maxrows = -1 Andrew On Jul 5, 12:38 pm, Fabio Maulo <[email protected]> wrote: > Confirmed, we have a bug. > We are changing the meaning of Single. > > > > On Mon, Jul 5, 2010 at 8:35 AM, Fabio Maulo <[email protected]> wrote: > > If our provider creates a paginated query for the method "Single" we have a > > bug. > > > On Mon, Jul 5, 2010 at 8:06 AM, andrew6072 > > <[email protected]>wrote: > > >> Hi Fabio, > > >> I think the exception got chopped off, this is the full exception. > > >> [SQL: select * from ( select olauser0_.USER_ID as USER1_57_, > >> olauser0_.USERNAME as USERNAME57_, olauser0_.EMAIL_ADDRESS as > >> EMAIL3_57_, olauser0_.COMMENTS as COMMENTS57_, olauser0_.PASSWORD as > >> PASSWORD57_, olauser0_.PASSWORD_QUESTION as PASSWORD6_57_, > >> olauser0_.PASSWORD_ANSWER as PASSWORD7_57_, olauser0_.IS_APPROVED as > >> IS8_57_, olauser0_.IS_LOCKEDOUT as IS9_57_, olauser0_.LAST_LOGON_DATE > >> as LAST10_57_, olauser0_.CREATION_DATE as CREATION11_57_, > >> olauser0_.LAST_ACTIVITY_DATE as LAST12_57_, > >> olauser0_.LAST_PASSWORD_CHANGED_DATE as LAST13_57_, > >> olauser0_.LAST_LOCKOUT_DATE as LAST14_57_ from OLA_USERS olauser0_ > >> where (olauser0_.USERNAME is null) and (:p0 is null) or > >> olauser0_.USERNAME=:p0 ) where rownum <=:p2] ---> > >> Oracle.DataAccess.Client.OracleException ORA-01008: not all variables > >> bound at > >> Oracle.DataAccess.Client.OracleException.HandleErrorHelper(Int32 > >> errCode, OracleConnection conn, IntPtr opsErrCtx, OpoSqlValCtx* > >> pOpoSqlValCtx, Object src, String procedure, Boolean bCheck) > >> at Oracle.DataAccess.Client.OracleException.HandleError(Int32 > >> errCode, OracleConnection conn, String procedure, IntPtr opsErrCtx, > >> OpoSqlValCtx* pOpoSqlValCtx, Object src, Boolean bCheck) > >> at Oracle.DataAccess.Client.OracleCommand.ExecuteReader(Boolean > >> requery, Boolean fillRequest, CommandBehavior behavior) > >> at > >> Oracle.DataAccess.Client.OracleCommand.ExecuteDbDataReader(CommandBehavior > >> behavior) > >> at > >> System.Data.Common.DbCommand.System.Data.IDbCommand.ExecuteReader() > >> at NHibernate.AdoNet.AbstractBatcher.ExecuteReader(IDbCommand cmd) > >> in d:\dev\oss\nhibernate\src\NHibernate\AdoNet\AbstractBatcher.cs:line > >> 242 > >> at NHibernate.Loader.Loader.GetResultSet(IDbCommand st, Boolean > >> autoDiscoverTypes, Boolean callable, RowSelection selection, > >> ISessionImplementor session) in d:\dev\oss\nhibernate\src\NHibernate > >> \Loader\Loader.cs:line 1325 > >> at NHibernate.Loader.Loader.DoQuery(ISessionImplementor session, > >> QueryParameters queryParameters, Boolean returnProxies) in d:\dev\oss > >> \nhibernate\src\NHibernate\Loader\Loader.cs:line 401 > >> at > > >> NHibernate.Loader.Loader.DoQueryAndInitializeNonLazyCollections(ISessionImplementor > >> session, QueryParameters queryParameters, Boolean returnProxies) in d: > >> \dev\oss\nhibernate\src\NHibernate\Loader\Loader.cs:line 236 > >> at NHibernate.Loader.Loader.DoList(ISessionImplementor session, > >> QueryParameters queryParameters) in d:\dev\oss\nhibernate\src > >> \NHibernate\Loader\Loader.cs:line 1653 > >> --- End of inner exception stack trace --- > >> at NHibernate.Loader.Loader.DoList(ISessionImplementor session, > >> QueryParameters queryParameters) in d:\dev\oss\nhibernate\src > >> \NHibernate\Loader\Loader.cs:line 1662 > >> at > >> NHibernate.Loader.Loader.ListIgnoreQueryCache(ISessionImplementor > >> session, QueryParameters queryParameters) in d:\dev\oss\nhibernate\src > >> \NHibernate\Loader\Loader.cs:line 1577 > >> at NHibernate.Loader.Loader.List(ISessionImplementor session, > >> QueryParameters queryParameters, ISet`1 querySpaces, IType[] > >> resultTypes) in d:\dev\oss\nhibernate\src\NHibernate\Loader > >> \Loader.cs:line 1567 > >> at > >> NHibernate.Hql.Ast.ANTLR.Loader.QueryLoader.List(ISessionImplementor > >> session, QueryParameters queryParameters) in d:\dev\oss\nhibernate\src > >> \NHibernate\Hql\Ast\ANTLR\Loader\QueryLoader.cs:line 297 > >> at > >> NHibernate.Hql.Ast.ANTLR.QueryTranslatorImpl.List(ISessionImplementor > >> session, QueryParameters queryParameters) in d:\dev\oss\nhibernate\src > >> \NHibernate\Hql\Ast\ANTLR\QueryTranslatorImpl.cs:line 107 > >> at NHibernate.Engine.Query.HQLQueryPlan.PerformList(QueryParameters > >> queryParameters, ISessionImplementor session, IList results) in d:\dev > >> \oss\nhibernate\src\NHibernate\Engine\Query\HQLQueryPlan.cs:line 105 > >> at NHibernate.Impl.SessionImpl.List(IQueryExpression > >> queryExpression, QueryParameters queryParameters, IList results) in d: > >> \dev\oss\nhibernate\src\NHibernate\Impl\SessionImpl.cs:line 676 > >> at NHibernate.Impl.SessionImpl.List(IQueryExpression > >> queryExpression, QueryParameters parameters) in d:\dev\oss\nhibernate > >> \src\NHibernate\Impl\SessionImpl.cs:line 655 > >> at NHibernate.Impl.ExpressionQueryImpl.List() in d:\dev\oss > >> \nhibernate\src\NHibernate\Impl\ExpressionQueryImpl.cs:line 63 > >> at NHibernate.Linq.NhQueryProvider.Execute(Expression expression) > >> in d:\dev\oss\nhibernate\src\NHibernate\Linq\NhQueryProvider.cs:line > >> 31 > >> at NHibernate.Linq.NhQueryProvider.Execute[TResult](Expression > >> expression) in d:\dev\oss\nhibernate\src\NHibernate\Linq > >> \NhQueryProvider.cs:line 55 > >> at System.Linq.Queryable.Single[TSource](IQueryable`1 source) > >> at > >> OlaCommon.Data.Repository.NHibernate.UserRepository.GetByUsername(String > >> username) in d:\dev\tfs\OlaCommon\OlaCommon.Data\Repository\NHibernate > >> \UserRepository.cs:line 27 > >> at > >> OlaMonitor.Infrastructure.NHibernateMembershipProvider.ValidateUser(String > >> username, String password) in d:\dev\tfs\OlaMonitor\OlaMonitor > >> \Infrastructure\NHibernateMembershipProvider.cs:line 248 > > >> Validateuser calls the following method > >> public OlaUser GetByUsername(string username) > >> { > >> var session = GetSession(); > >> var query = (from a in session.Query<OlaUser>() > >> where a.Username == username > >> select a); > >> var user = query.Single(); > >> return user; > >> } > > >> Do you need anything else ? > > >> Andrew > > >> On Jul 5, 11:43 am, Fabio Maulo <[email protected]> wrote: > >> > Please send us something else... In some point you are forcing the > >> > pagination of the query. > > >> > -- > >> > Fabio Maulo > > >> > El 05/07/2010, a las 07:16, andrew6072 <[email protected]> > >> escribió: > > >> > > Hi, > > >> > > Not sure if I've done something wrong but I can't get this to work, if > >> > > I look at the query I can see one object, as soon as it hits the > >> > > query.single() it bombs with the stack below, am I missing something ? > >> > > Not sure if it makes any difference but I'm using fluent to create my > >> > > mappings. > > >> > > var query = (from a in session.Query<OlaUser>() > >> > > where a.Username == username > >> > > select a); > > >> > > var user = query.Single(); > > >> > > Andrew > > >> > > [ select * from ( select olauser0_.USER_ID as USER1_57_, > >> > > olauser0_.USERNAME as USERNAME57_, olauser0_.EMAIL_ADDRESS as > >> > > EMAIL3_57_, olauser0_.COMMENTS as COMMENTS57_, olauser0_.PASSWORD as > >> > > PASSWORD57_, olauser0_.PASSWORD_QUESTION as PASSWORD6_57_, > >> > > olauser0_.PASSWORD_ANSWER as PASSWORD7_57_, olauser0_.IS_APPROVED as > >> > > IS8_57_, olauser0_.IS_LOCKEDOUT as IS9_57_, olauser0_.LAST_LOGON_DATE > >> > > as LAST10_57_, olauser0_.CREATION_DATE as CREATION11_57_, > >> > > olauser0_.LAST_ACTIVITY_DATE as LAST12_57_, > >> > > olauser0_.LAST_PASSWORD_CHANGED_DATE as LAST13_57_, > >> > > olauser0_.LAST_LOCKOUT_DATE as LAST14_57_ from USERS olauser0_ where > >> > > (olauser0_.USERNAME is null) and (:p0 is null) or > >> > > olauser0_.USERNAME=:p0 ) where rownum <=:p2 ] > >> > > Name:p1 - Value:andrewb > > >> > > Oracle.DataAccess.Client.OracleException ORA-01008: not all variables > >> > > bound at > >> > > Oracle.DataAccess.Client.OracleException.HandleErrorHelper(Int32 > >> > > errCode, OracleConnection conn, IntPtr opsErrCtx, OpoSqlValCtx* > >> > > pOpoSqlValCtx, Object src, String procedure, Boolean bCheck) > >> > > at Oracle.DataAccess.Client.OracleException.HandleError(Int32 > >> > > errCode, OracleConnection conn, String procedure, IntPtr opsErrCtx, > >> > > OpoSqlValCtx* pOpoSqlValCtx, Object src, Boolean bCheck) > >> > > at Oracle.DataAccess.Client.OracleCommand.ExecuteReader(Boolean > >> > > requery, Boolean fillRequest, CommandBehavior behavior) > >> > > at > > >> Oracle.DataAccess.Client.OracleCommand.ExecuteDbDataReader(CommandBehavior > >> > > behavior) > >> > > at > >> > > System.Data.Common.DbCommand.System.Data.IDbCommand.ExecuteReader() > >> > > at NHibernate.AdoNet.AbstractBatcher.ExecuteReader(IDbCommand cmd) > >> > > in d:\dev\oss\nhibernate\src\NHibernate\AdoNet\AbstractBatcher.cs:line > >> > > 242 > >> > > at NHibernate.Loader.Loader.GetResultSet(IDbCommand st, Boolean > >> > > autoDiscoverTypes, Boolean callable, RowSelection selection, > >> > > ISessionImplementor session) in d:\dev\oss\nhibernate\src\NHibernate > >> > > \Loader\Loader.cs:line 1325 > >> > > at NHibernate.Loader.Loader.DoQuery(ISessionImplementor session, > >> > > QueryParameters queryParameters, Boolean returnProxies) in d:\dev\oss > >> > > \nhibernate\src\NHibernate\Loader\Loader.cs:line 401 > >> > > at > > >> NHibernate.Loader.Loader.DoQueryAndInitializeNonLazyCollections(ISessionImplementor > >> > > session, QueryParameters queryParameters, Boolean returnProxies) in d: > >> > > \dev\oss\nhibernate\src\NHibernate\Loader\Loader.cs:line 236 > >> > > at NHibernate.Loader.Loader.DoList(ISessionImplementor session, > >> > > QueryParameters queryParameters) in d:\dev\oss\nhibernate\src > >> > > \NHibernate\Loader\Loader.cs:line 1653 > >> > > 2010-07-05 10:54:20,134 [9] WARN NHibernate.Util.ADOExceptionReporter > >> > > - Oracle.DataAccess.Client.OracleException ORA-01008: not all > >> > > variables bound at > >> > > Oracle.DataAccess.Client.OracleException.HandleErrorHelper(Int32 > >> > > errCode, OracleConnection conn, IntPtr opsErrCtx, OpoSqlValCtx* > >> > > pOpoSqlValCtx, Object src, String procedure, Boolean bCheck) > > ... > > read more »- Hide quoted text - > > - Show quoted text - -- You received this message because you are subscribed to the Google Groups "nhusers" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/nhusers?hl=en.
