You can do it only using an "implicit join" between TaggedItem and one of the <any> implementationselect a from TaggedItem ti, Article a where ti.Item.id = a.Id
Note the "ti.Item.id": the "id" property is a special "injected" property by NH. Using "id" in lowercase NH use the POID of the related entity. 2009/1/10 ccollie <[email protected]> > > Im writing a generic taxonomy/tagging module where any entity in the > system can be tagged. The tagging table looks like > > id int > UserId int > TaggedAt Date > Term varchar > ContentType varchar > ContentId int > > To make this implementation easier (since i dont impose a base class > on the tagged entities), i want to use the Any type mapping: > > <class name='SocialDance.Core.Domain.TaggedItem, > SocialDance.Core.Domain' table='`TaggedItem`'> > <id name='Id'> > <generator class='identity'/> > </id> > > <many-to-one name="TaggedBy" class="SocialDance.Core.Domain.User, > SocialDance.Core.Domain" column="userId" not-null="false" /> > > <property name="Term" column="Term" type="String" length="50" /> > <property name="TaggedAt" column="TaggedAt"/> > > <any name='Item' meta-type='System.String' id- > type='System.Int32'> > <meta-value class='SocialDance.Core.Domain.Article, > SocialDance.Core.Domain' value='ARTICLE'/> > <meta-value class='SocialDance.Core.Domain.Photo, > SocialDance.Core.Domain' value='PHOTO'/> > <meta-value class='SocialDance.Core.Domain.BlogPost, > SocialDance.Core.Domain' value='POST'/> > <column name='ContentType'/> > <column name='ContentId'/> > </any> > > </class> > > My question is how do i query on the Any association ? I looked at > NHibernate's tests for the any mapping and they offer no clues. In > particular, i need to query for the tags on a particular item (seems > ok), and particular types (e.g. all photo tags for tag cloud calcs). I > assume that i cant query on any properties of TaggedItem.Item beyond > its type and id. > > > Thanks > > > -- 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=en -~----------~----~----~----~------~----~------~--~---
