NHibernate多对一,不是一个真正的多对一关系,需要过滤掉重复

时间:2012-05-26 15:07:33

标签: nhibernate nhibernate-mapping

我刚刚继承了一个使用NHibernate的应用程序。

该应用具有以下映射:

    <?xml version="1.0" encoding="utf-8" ?>
    <hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" assembly="MyDomain.Domain" namespace="MyDomain.Domain">
      <class name="SomeTable" table="Some_Table" lazy="false">
      <id name="ID" type="System.Int32" unsaved-value="-1">
        <column name="ID" sql-type="NUMBER" not-null="true" unique="true"/>
        <generator class="sequence">
          <param name="sequence"><![CDATA[DB.ST_SEQ]]></param>
        </generator>
      </id>
      <many-to-one name="ToLocation" class="ToLocation" column="TO_LOCATION_ID"/>
      <many-to-one name="FromLocation" class="FromLocation" column="FROM_LOCATION_ID"/>
    </class>
    </hibernate-mapping>

麻烦是多对一关系不是真正的多对一关系,因为现在外表中的某些ID是重复的。 (不要问我谁会创建一个不唯一的ID!)。

由于这主要是一个报道问题,我可以做以下三件事之一:

  1. 我可以创建一个FindByNamedQuery并调用
  2. 我可以使结果明显
  3. 我可以查询外键(例如,Active = True的ToLocation)
  4. 我可以做一两个,但我想学习如何做第3个。

    谢谢,Bill N

0 个答案:

没有答案