vgquotes/Src/VideoGameQuotes.Api/Mappings/Quote.hbm.xml
tmont 540f34da3e * denormalized flags to FlagCount
* don't query all votes for every quote that is rendered
2011-02-27 01:41:07 +00:00

37 lines
1.8 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" assembly="VideoGameQuotes.Api" namespace="VideoGameQuotes.Api">
<class name="Quote" table="game_quote">
<id column="quote_id" name="Id" type="int">
<generator class="identity" />
</id>
<property name="text" access="field" column="quote_text" not-null="true" type="string" length="1024"/>
<property name="Created" column="created" not-null="true" type="DateTime" />
<property name="Modified" column="modified" not-null="false" type="DateTime" />
<many-to-one name="Creator" column="creator" not-null="true" foreign-key="fk_quote_user"/>
<many-to-one name="Game" column="game_id" not-null="true" foreign-key="fk_quote_game" fetch="join" />
<!-- denormalization for performance purposes -->
<property name="Score" column="score" not-null="true" index="idx_score_upvotes" />
<property name="UpVotes" column="upvotes" not-null="true" index="idx_score_upvotes" />
<property name="DownVotes" column="downvotes" not-null="true" />
<property name="FlagCount" column="flag_count" not-null="true" />
<set access="nosetter.camelcase" name="Categories" table="quote_category_map">
<key column="quote_id" />
<many-to-many class="VideoGameQuotes.Api.Category" column="category_id" />
</set>
<set access="nosetter.camelcase" name="Votes" table="vote" inverse="true" cascade="all-delete-orphan">
<key column="quote_id" not-null="true" />
<one-to-many class="VideoGameQuotes.Api.Vote" />
</set>
<set access="nosetter.camelcase" name="Flags" inverse="true" table="quote_flag" cascade="all-delete-orphan">
<key not-null="true" column="quote_id" />
<one-to-many class="VideoGameQuotes.Api.QuoteFlag" />
</set>
</class>
</hibernate-mapping>