Ok,
does this query work in HQL?

2013/5/30 Diego Mijelshon <[email protected]>

> Alex - that's what the NHibernate.NodaTime project is about! :-)
> I'll wait 'til you re-read my original email...
> ...ok, we're back :-)
> So, the problem is, my type works fine for most operations (schema
> creation, CRUD, HQL, and LINQ queries that include the properties as
> scalar). But aggregations fail because the tree includes an "HqlIdent",
> which I have no idea what represents, but is hardcoded for primitive types.
>
>
> On Wed, May 29, 2013 at 8:34 PM, Alexander I. Zaytsev <[email protected]>wrote:
>
>> I mean create a IUserType to handle NodaTime and register it in mapping.
>>
>> Regards,
>> Alex
>>
>>
>> 2013/5/29 Diego Mijelshon <[email protected]>
>>
>>> Register where, Alex?
>>>
>>>
>>> On Tue, May 28, 2013 at 7:31 PM, Alexander I. Zaytsev 
>>> <[email protected]>wrote:
>>>
>>>> Hi Diego,
>>>>
>>>> Probably you need to register usertype for nodatime.
>>>>
>>>> Regards,
>>>> Alex
>>>>
>>>>
>>>> 2013/5/29 Diego Mijelshon <[email protected]>
>>>>
>>>>> session.Query<Foo>().Max(x => x.Date);
>>>>>
>>>>> This is the full code of the method I did not commit in
>>>>> LocalDateFixture:
>>>>>
>>>>>
>>>>>         [Test]
>>>>>         public void ValuesCanBeRetrievedFromLinqQueries()
>>>>>         {
>>>>>             object id;
>>>>>             using (var session = sessionFactory.OpenSession())
>>>>>             using (var tx = session.BeginTransaction())
>>>>>             {
>>>>>                 id = session.Save(new Foo { Date = someDate });
>>>>>                 tx.Commit();
>>>>>             }
>>>>>             using (var session = sessionFactory.OpenSession())
>>>>>             using (var tx = session.BeginTransaction())
>>>>>             {
>>>>>                 var maxDate = session.Query<Foo>().Max(x => x.Date);
>>>>>                 Assert.AreEqual(someDate, maxDate);
>>>>>             }
>>>>>         }
>>>>>
>>>>>
>>>>> Thanks
>>>>> Diego
>>>>>
>>>>>
>>>>> On Mon, May 27, 2013 at 11:13 PM, Alexander I. Zaytsev <
>>>>> [email protected]> wrote:
>>>>>
>>>>>> Hi Diego,
>>>>>>
>>>>>> Can you please provide a query?
>>>>>>
>>>>>> Regards,
>>>>>> Alexander
>>>>>>
>>>>>>
>>>>>> 2013/5/28 Diego Mijelshon <[email protected]>
>>>>>>
>>>>>>>  Hi guys.
>>>>>>>
>>>>>>> I'm trying to implement some NodaTime mapping support for NH.
>>>>>>> This is in a proof-of-concept state now, but there's already a Nuget
>>>>>>> package, NHibernate.NodaTime. You can check it out.
>>>>>>> Here's one of the first roadblocks I've found: when trying to query
>>>>>>> using LINQ aggregate methods, I run into the following exception:
>>>>>>>
>>>>>>> System.NotSupportedException : Don't currently support idents of
>>>>>>> type LocalDate
>>>>>>>    at NHibernate.Hql.Ast.HqlIdent..ctor(IASTFactory factory, Type
>>>>>>> type)
>>>>>>>    at NHibernate.Hql.Ast.HqlCast..ctor(IASTFactory factory,
>>>>>>> HqlExpression expression, Type type)
>>>>>>>    at NHibernate.Hql.Ast.HqlTreeBuilder.Cast(HqlExpression
>>>>>>> expression, Type type)
>>>>>>>    at
>>>>>>> NHibernate.Linq.Visitors.HqlGeneratorExpressionTreeVisitor.VisitNhMax(NhMaxExpression
>>>>>>> expression)
>>>>>>>    at
>>>>>>> NHibernate.Linq.Visitors.HqlGeneratorExpressionTreeVisitor.VisitExpression(Expression
>>>>>>> expression)
>>>>>>>    at
>>>>>>> NHibernate.Linq.Visitors.HqlGeneratorExpressionTreeVisitor.Visit(Expression
>>>>>>> expression)
>>>>>>>    at
>>>>>>> NHibernate.Linq.Visitors.SelectClauseVisitor.VisitExpression(Expression
>>>>>>> expression)
>>>>>>>    at NHibernate.Linq.Visitors.SelectClauseVisitor.Visit(Expression
>>>>>>> expression)
>>>>>>>    at
>>>>>>> NHibernate.Linq.Visitors.QueryModelVisitor.VisitSelectClause(SelectClause
>>>>>>> selectClause, QueryModel queryModel)
>>>>>>>    at Remotion.Linq.Clauses.SelectClause.Accept(IQueryModelVisitor
>>>>>>> visitor, QueryModel queryModel)
>>>>>>>    at Remotion.Linq.QueryModelVisitorBase.VisitQueryModel(QueryModel
>>>>>>> queryModel)
>>>>>>>    at NHibernate.Linq.Visitors.QueryModelVisitor.Visit()
>>>>>>>    at
>>>>>>> NHibernate.Linq.Visitors.QueryModelVisitor.GenerateHqlQuery(QueryModel
>>>>>>> queryModel, VisitorParameters parameters, Boolean root)
>>>>>>>    at
>>>>>>> NHibernate.Linq.NhLinqExpression.Translate(ISessionFactoryImplementor
>>>>>>> sessionFactory)
>>>>>>>    at
>>>>>>> NHibernate.Hql.Ast.ANTLR.ASTQueryTranslatorFactory.CreateQueryTranslators(String
>>>>>>> queryIdentifier, IQueryExpression queryExpression, String 
>>>>>>> collectionRole,
>>>>>>> Boolean shallow, IDictionary`2 filters, ISessionFactoryImplementor 
>>>>>>> factory)
>>>>>>>    at
>>>>>>> NHibernate.Engine.Query.HQLExpressionQueryPlan.CreateTranslators(String
>>>>>>> expressionStr, IQueryExpression queryExpression, String collectionRole,
>>>>>>> Boolean shallow, IDictionary`2 enabledFilters, 
>>>>>>> ISessionFactoryImplementor
>>>>>>> factory)
>>>>>>>    at NHibernate.Engine.Query.HQLExpressionQueryPlan..ctor(String
>>>>>>> expressionStr, IQueryExpression queryExpression, String collectionRole,
>>>>>>> Boolean shallow, IDictionary`2 enabledFilters, 
>>>>>>> ISessionFactoryImplementor
>>>>>>> factory)
>>>>>>>    at NHibernate.Engine.Query.HQLExpressionQueryPlan..ctor(String
>>>>>>> expressionStr, IQueryExpression queryExpression, Boolean shallow,
>>>>>>> IDictionary`2 enabledFilters, ISessionFactoryImplementor factory)
>>>>>>>    at
>>>>>>> NHibernate.Engine.Query.QueryPlanCache.GetHQLQueryPlan(IQueryExpression
>>>>>>> queryExpression, Boolean shallow, IDictionary`2 enabledFilters)
>>>>>>>    at
>>>>>>> NHibernate.Impl.AbstractSessionImpl.GetHQLQueryPlan(IQueryExpression
>>>>>>> queryExpression, Boolean shallow)
>>>>>>>    at
>>>>>>> NHibernate.Impl.AbstractSessionImpl.CreateQuery(IQueryExpression
>>>>>>> queryExpression)
>>>>>>>    at NHibernate.Linq.DefaultQueryProvider.PrepareQuery(Expression
>>>>>>> expression, ref IQuery query, ref NhLinqExpression nhQuery)
>>>>>>>    at NHibernate.Linq.DefaultQueryProvider.Execute(Expression
>>>>>>> expression)
>>>>>>>    at NHibernate.Linq.DefaultQueryProvider.Execute(Expression
>>>>>>> expression)
>>>>>>>    at System.Linq.Queryable.Max(IQueryable`1 source, Expression`1
>>>>>>> selector)
>>>>>>>    at [my code]
>>>>>>>
>>>>>>> It looks like the Hql Ast generation fails for anything that is not
>>>>>>> a native type.
>>>>>>> Is there a workaround from the Linq side (generators) or do I have
>>>>>>> to patch the core?
>>>>>>>
>>>>>>> Thanks!
>>>>>>> Diego
>>>>>>>
>>>>>>> --
>>>>>>>
>>>>>>> ---
>>>>>>> You received this message because you are subscribed to the Google
>>>>>>> Groups "nhibernate-development" group.
>>>>>>> To unsubscribe from this group and stop receiving emails from it,
>>>>>>> send an email to [email protected]
>>>>>>> .
>>>>>>> For more options, visit https://groups.google.com/groups/opt_out.
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>
>>>>>>  --
>>>>>>
>>>>>> ---
>>>>>> You received this message because you are subscribed to the Google
>>>>>> Groups "nhibernate-development" group.
>>>>>> To unsubscribe from this group and stop receiving emails from it,
>>>>>> send an email to [email protected].
>>>>>> For more options, visit https://groups.google.com/groups/opt_out.
>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>>>  --
>>>>>
>>>>> ---
>>>>> You received this message because you are subscribed to the Google
>>>>> Groups "nhibernate-development" group.
>>>>> To unsubscribe from this group and stop receiving emails from it, send
>>>>> an email to [email protected].
>>>>> For more options, visit https://groups.google.com/groups/opt_out.
>>>>>
>>>>>
>>>>>
>>>>
>>>>  --
>>>>
>>>> ---
>>>> You received this message because you are subscribed to the Google
>>>> Groups "nhibernate-development" group.
>>>> To unsubscribe from this group and stop receiving emails from it, send
>>>> an email to [email protected].
>>>> For more options, visit https://groups.google.com/groups/opt_out.
>>>>
>>>>
>>>>
>>>
>>>  --
>>>
>>> ---
>>> You received this message because you are subscribed to the Google
>>> Groups "nhibernate-development" group.
>>> To unsubscribe from this group and stop receiving emails from it, send
>>> an email to [email protected].
>>> For more options, visit https://groups.google.com/groups/opt_out.
>>>
>>>
>>>
>>
>>  --
>>
>> ---
>> You received this message because you are subscribed to the Google Groups
>> "nhibernate-development" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to [email protected].
>> For more options, visit https://groups.google.com/groups/opt_out.
>>
>>
>>
>
>  --
>
> ---
> You received this message because you are subscribed to the Google Groups
> "nhibernate-development" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> For more options, visit https://groups.google.com/groups/opt_out.
>
>
>

-- 

--- 
You received this message because you are subscribed to the Google Groups 
"nhibernate-development" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to