2009-03-10 6 views
3

Je me demandais si quelqu'un avait essayé de le faire dans NHibernate.Nhibernate - requête avec table de jointure sans relation

J'ai les tableaux suivants (version simpify).

VILLE: ville (varchar2) (PK) province (varchar2) (PK)

CITY_TL: ville (varchar2) (PK) province (varchar2) (PK) lang (char (2)) (PK)

EMPLACEMENT: emplacement (varchar2) (PK) autre colonne.

Comme vous pouvez le voir, il n'y a pas de relation entre CITY et LOCATION. Toutefois, il a été configuré de telle sorte que CITY.Province peut égaler LOCATION.Location. Donc, je peux exécuter une requête comme ceci:.

select c * de la ville c rejoindre ctl city_tl sur c.city = ctl.city rejoindre l emplacement sur l.location = c.province

Comment je fais ça dans NHibernate? Est-ce que c'est faisable?

Voici mes fichiers cartographiques pour la ville et LOCALISATION

VILLE:

<?xml version="1.0" encoding="utf-8" ?> 
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" 
        assembly="NHDAL" 
        namespace="NHDAL.Domain"> 

    <class name="CityTL" table="CITY_TL"> 
    <composite-id> 
     <key-property column="CITY" type="String" name="Name"/> 
     <key-property column="PROVINCE" type="String" name="Province"/> 
     <key-property column="LANG" type="String" name="Lang" /> 
    </composite-id> 

    <timestamp 
     column="MODIFY_DATE" 
     name="ModifyDate" 
     access="property" 
     unsaved-value="null"/> 

    <property name="ProvinceDescription" column="PROVINCE_TL" 
type="String" not-null="true" /> 
    <property name="Description" column="CITY_TL" type="String" not- 
null="true"/> 
    <property name="SortOrder" column="SORT_ORDER" type="Int32" not- 
null="false"/> 

    <many-to-one name="City" class="City"> 
     <column name="CITY"/> 
     <column name="PROVINCE"/> 
    </many-to-one> 
    </class> 

</hibernate-mapping> 

LIEU:

<?xml version="1.0" encoding="utf-8" ?> 
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" 
        assembly="NHDAL" 
        namespace="NHDAL.Domain"> 

    <class name="Location" table="LOCATION"> 
    <id column="LOCATION" name="Name"> 
     <generator class="assigned" /> 
    </id> 

    <timestamp 
     column="MODIFY_DATE" 
     name="ModifyDate" 
     access="property" 
     unsaved-value="null"/> 

     </class> 

</hibernate-mapping> 

Quelqu'un peut-il briller un peu de lumière sur ce sujet et me dire ce que si la requête ressembler à NHibernate?

+0

La cartographie de la classe City est manquante –

Répondre

0

entités non apparentées vous pouvez les joindre à hql ou SQL en utilisant le produit cartésien:

Here

Questions connexes