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
-~----------~----~----~----~------~----~------~--~---

Reply via email to