J'ai un mappage NH commun;NHibernate. Un parent parent différent va chercher
<class name="Order, SummaryOrder.Core" table='order'>
<id name="Id" unsaved-value="0" type="int">
<column name="id" not-null="true"/>
<generator class="native"/>
</id>
<many-to-one name="Client" class="SummaryOrderClient, SummaryOrder.Core" column="summary_order_client_id"
cascade="none"/>
<many-to-one name="Provider" class="SummaryOrderClient, SummaryOrder.Core" column="summary_order_provider_id"
cascade="none"/>
<set name="Items" cascade="all">
<key column="order_id"/>
<one-to-many class="OrderItem, Clients.Core" />
</set>
</class>
Vous voulez obtenir la liste par ce critère
ICriteria criteria = NHibernateStateLessSession.CreateCriteria(typeof(SummaryOrder.Core.Domains.Order)); ;
criteria.Add(Restrictions.Or
(Restrictions.Eq(String.Format("{0}.Id", SummaryOrder.Core.Domains.Order.Properties.Client), idClient),
Restrictions.Eq(String.Format("{0}.Id", SummaryOrder.Core.Domains.Order.Properties.Provider), idClient))).
SetResultTransformer(new DistinctRootEntityResultTransformer()).
SetFetchMode(SummaryOrder.Core.Domains.Order.Properties.Items, FetchMode.Join);
return criteria.List<SummaryOrder.Core.Domains.Order>() as List<SummaryOrder.Core.Domains.Order>
Mais j'ai en double .. Quand j'exécute une restriction (ou sans) Je suis collection distincte de commandes, mais les restrictions ou les freins ma requête . Je veux obtenir une collection distincte de commandes (chez le client). Qu'est-ce qui ne va pas. S'il vous plaît HELP!
Ce hql fonctionne. Pourquoi n'ai-je pas pu obtenir ce résultat par critères API?
select distinct o from Order o left join fetch o.Items where o.Client.Id=1 or o.Provider.Id=1
Quelle est votre "idClient" dans l'exemple ci-dessus? et aussi dans les Restrictions.Ou vous utilisez idClient pour les propriétés Client et Fournisseur, ce n'est pas une erreur, n'est-ce pas? – VoodooChild
idClient est id (int) du client. Non, ce n'est pas une erreur. J'ai besoin de cette logique. –