well done!

2009/11/18 Diego Mijelshon <[email protected]>

> Done, http://nhjira.koah.net/browse/NH-2019
>
>    Diego
>
>
>
> On Wed, Nov 18, 2009 at 17:30, Fabio Maulo <[email protected]> wrote:
>
>> Adding a JIRA ticket about the documentation issue. The proposed patch is
>> well welcome.
>> Thanks.
>>
>>
>> 2009/11/18 Diego Mijelshon <[email protected]>
>>
>>> It seemed weird that *CreateCriteria<IFoo>()* always works, but 
>>> *CreateQuery("from
>>> IFoo")* requires the use of <import> (and, strange enough, 
>>> *CreateQuery("from
>>> System.Object")* works always).
>>>
>>> That wasn't clear to me from the doc (
>>> http://nhforge.org/doc/nh/en/index.html#queryhql-polymorphism), and
>>> after implementing what Germán suggested, I assumed it wasn't possible for
>>> the HQL parser to know what type I'm referring to if it's not declared,
>>> while Criteria gets the corresponding Type instance.
>>>
>>> Now, after seeing it all, it's a perfectly reasonable behavior. Only the
>>> docs should be more specific.
>>> How can I contribute to that? I feel like it's time to start giving back
>>> to NH :-)
>>>
>>>    Diego
>>>
>>>
>>>
>>> On Wed, Nov 18, 2009 at 16:59, Fabio Maulo <[email protected]> wrote:
>>>
>>>> where is the news? I don't understand
>>>> http://nhforge.org/doc/nh/en/index.html#mapping-declaration-import
>>>>
>>>> 2009/11/18 Diego Mijelshon <[email protected]>
>>>>
>>>> Thanks Germán!
>>>>> That did the trick.
>>>>>
>>>>> Strange behavior in HQL, though.
>>>>> It has to be an implementation detail (i.e. not easy to "guess" the
>>>>> type if there are no references to it)
>>>>> Fabio, is that it?
>>>>>
>>>>>    Diego
>>>>>
>>>>>
>>>>>
>>>>> On Wed, Nov 18, 2009 at 16:25, Germán Schuager <[email protected]>wrote:
>>>>>
>>>>>>
>>>>>> http://blog.schuager.com/2008/12/polymorphic-query-using-interfaces.html
>>>>>>
>>>>>> On Wed, Nov 18, 2009 at 4:20 PM, Diego Mijelshon <
>>>>>> [email protected]> wrote:
>>>>>>
>>>>>>> According to the docs, querying on IFoo should return instances from
>>>>>>> all the types that implement IFoo, even if there's no reference to IFoo 
>>>>>>> in
>>>>>>> the mappings.
>>>>>>>
>>>>>>> Here's what I'm trying to map:
>>>>>>>
>>>>>>> *public interface IFoo { int Foo { get; set; } }*
>>>>>>> *public class X : IFoo { public virtual int Foo { get; set; } }*
>>>>>>> *public class Y : IFoo { public virtual int Foo { get; set; } }*
>>>>>>> *
>>>>>>> *
>>>>>>> *<class name="X">*
>>>>>>> * **<id column="id" type="int">*
>>>>>>> * **<generator class="identity"/>*
>>>>>>> * **</id>*
>>>>>>> * **<property name="Foo"/>*
>>>>>>> *</class>*
>>>>>>> *<class name="Y">*
>>>>>>> * **<id column="id" type="int">*
>>>>>>> * **<generator class="identity"/>*
>>>>>>> * **</id>*
>>>>>>> * **<property name="Foo"/>*
>>>>>>> *</class>*
>>>>>>>
>>>>>>> But when I try to CreateQuery("from IFoo"), I get an exception:
>>>>>>>
>>>>>>> *Unhandled Exception: NHibernate.Hql.Ast.ANTLR.QuerySyntaxException:
>>>>>>> IFoo is not mapped [from IFoo]*
>>>>>>> *   at
>>>>>>> NHibernate.Hql.Ast.ANTLR.SessionFactoryHelperExtensions.RequireClassPersister(String
>>>>>>> name)*
>>>>>>> *   at
>>>>>>> NHibernate.Hql.Ast.ANTLR.Tree.FromElementFactory.AddFromElement()*
>>>>>>> *   at
>>>>>>> NHibernate.Hql.Ast.ANTLR.Tree.FromClause.AddFromElement(String path,
>>>>>>> IASTNode alias)*
>>>>>>> *   at
>>>>>>> NHibernate.Hql.Ast.ANTLR.HqlSqlWalker.CreateFromElement(String path,
>>>>>>> IASTNode pathNode, IASTNode alias, IASTNode propertyFetch)*
>>>>>>> *   at NHibernate.Hql.Ast.ANTLR.HqlSqlWalker.fromElement()*
>>>>>>> *   at NHibernate.Hql.Ast.ANTLR.HqlSqlWalker.fromElementList()*
>>>>>>> *   at NHibernate.Hql.Ast.ANTLR.HqlSqlWalker.fromClause()*
>>>>>>> *   at NHibernate.Hql.Ast.ANTLR.HqlSqlWalker.unionedQuery()*
>>>>>>> *   at NHibernate.Hql.Ast.ANTLR.HqlSqlWalker.query()*
>>>>>>> *   at NHibernate.Hql.Ast.ANTLR.HqlSqlWalker.selectStatement()*
>>>>>>> *   at NHibernate.Hql.Ast.ANTLR.HqlSqlWalker.statement()*
>>>>>>> *   at NHibernate.Hql.Ast.ANTLR.HqlSqlTranslator.Translate()*
>>>>>>> *   at
>>>>>>> NHibernate.Hql.Ast.ANTLR.QueryTranslatorImpl.Analyze(HqlParseEngine 
>>>>>>> parser,
>>>>>>> String collectionRole)*
>>>>>>> *   at
>>>>>>> NHibernate.Hql.Ast.ANTLR.QueryTranslatorImpl.DoCompile(IDictionary`2
>>>>>>> replacements, Boolean shallow, String collectionRole)*
>>>>>>> *   at
>>>>>>> NHibernate.Hql.Ast.ANTLR.QueryTranslatorImpl.Compile(IDictionary`2
>>>>>>> replacements, Boolean shallow)*
>>>>>>> *   at NHibernate.Engine.Query.HQLQueryPlan..ctor(String hql, String
>>>>>>> collectionRole, Boolean shallow, IDictionary`2 enabledFilters,
>>>>>>> ISessionFactoryImplementor factory)*
>>>>>>> *   at NHibernate.Engine.Query.QueryPlanCache.GetHQLQueryPlan(String
>>>>>>> queryString, Boolean shallow, IDictionary`2 enabledFilters)*
>>>>>>> *   at NHibernate.Impl.AbstractSessionImpl.GetHQLQueryPlan(String
>>>>>>> query, Boolean shallow)*
>>>>>>> *   at NHibernate.Impl.AbstractSessionImpl.CreateQuery(String
>>>>>>> queryString)*
>>>>>>>
>>>>>>> What am I doing wrong?
>>>>>>>
>>>>>>>    Diego
>>>>>>>
>>>>>>> --
>>>>>>> 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]<nhusers%[email protected]>
>>>>>>> .
>>>>>>> For more options, visit this group at
>>>>>>> http://groups.google.com/group/nhusers?hl=en.
>>>>>>>
>>>>>>
>>>>>>  --
>>>>>> 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]<nhusers%[email protected]>
>>>>>> .
>>>>>> For more options, visit this group at
>>>>>> http://groups.google.com/group/nhusers?hl=en.
>>>>>>
>>>>>
>>>>>  --
>>>>> 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]<nhusers%[email protected]>
>>>>> .
>>>>> For more options, visit this group at
>>>>> http://groups.google.com/group/nhusers?hl=en.
>>>>>
>>>>
>>>>
>>>>
>>>> --
>>>> Fabio Maulo
>>>>
>>>> --
>>>> 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]<nhusers%[email protected]>
>>>> .
>>>> For more options, visit this group at
>>>> http://groups.google.com/group/nhusers?hl=en.
>>>>
>>>
>>>  --
>>> 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]<nhusers%[email protected]>
>>> .
>>> For more options, visit this group at
>>> http://groups.google.com/group/nhusers?hl=en.
>>>
>>
>>
>>
>> --
>> Fabio Maulo
>>
>> --
>> 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]<nhusers%[email protected]>
>> .
>> For more options, visit this group at
>> http://groups.google.com/group/nhusers?hl=en.
>>
>
>  --
> 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]<nhusers%[email protected]>
> .
> For more options, visit this group at
> http://groups.google.com/group/nhusers?hl=.
>



-- 
Fabio Maulo

--

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=.


Reply via email to