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]. For more options, visit this group at http://groups.google.com/group/nhusers?hl=en.
