2012-02-28 70 views
1

我有以下情况,我需要映射视图的一些只读属性,但我需要加入一个筛选器,只有我需要的那种情况。如何筛选子类中的联接?

<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" 
        assembly="XX" 
        namespace="XXYY"> 
    <subclass name="B" 
      extends="P" 
      discriminator-value="IS" 
      dynamic-insert="true" 
      dynamic-update="true" 
      lazy="true"> 

    <join table="Aview" inverse="true"> 
     <key column="ID_A" /> 
     <property name="IdBlabla" insert ="false" update ="false" column="ID_BlaBla"/> 
     <property name="Tipo" insert ="false" update ="false" /> 
     <many-to-one name="CC" column="ID_C" cascade="none" insert ="false" update ="false"/> 
    </join> 
     </subclass> 

</hibernate-mapping> 

如何过滤特定的ID_C?

我只需要一个结果从加入,否则我有多个对象

+0

你的问题不清楚,你的加入会带来多重结果吗?没有多对一的情况下它是否正常工作?特定的ID_CC(ID_C?)硬编码到您的映射? – 2012-02-28 18:36:54

+0

我需要在视图中只有具有特定ID_C的行,我需要有一对一的映射,真实情况会更复杂,但是如果我可以在连接的表上设置一些动态过滤器,我就会实现目标。否则,当我getbyid我有多个结果。 – Andreanta 2012-02-28 21:51:31

回答

0

我已经找到了窍门

我在关键列字段设置过滤条件和它的作品!

<join table="Aview" inverse="true"> 
     **<key column="ID_A and ID_C=:MyFilter.IdCC" />** 
     <property name="IdBlabla" insert ="false" update ="false" column="ID_BlaBla"/> 
     <property name="Tipo" insert ="false" update ="false" /> 
     <many-to-one name="CC" column="ID_C" cascade="none" insert ="false" update ="false"/> 
    </join> 
+0

现在我有一个查询中的别名问题 – Andreanta 2012-02-29 09:34:23