je la configuration suivante:CF9 HQL Déclaration des critères nombreux à plusieurs et plusieurs
Listing.cfc
component persistent="true"
{
property name="ListingId" column="ListingId" type="numeric" ormtype="int" fieldtype="id" generator="identity";
...
property name="Features" type="array" hint="Array of features" singularname="Feature" fieldtype="many-to-many" cfc="Feature" linktable="Listing_Feature" FKColumn="ListingId" inversejoincolumn="FeatureId";
}
Feature.cfc
component persistent="true" table="Feature" schema="dbo" output="false"
{
property name="FeatureId" column="FeatureId" type="numeric" ormtype="int" fieldtype="id" generator="identity";
property name="FeatureDescription" column="FeatureDescription" type="string" ormtype="string";
...
/*property name="Listings" fieldtype="many-to-many" cfc="Listing" linktable="Listing_Feature" fkcolumn="FeatureId" inversejoincolumn="ListingId" lazy="true" cascade="all" orderby="GroupOrder";*/
}
Je peux sélectionner toutes les annonces qui ont une caractéristique particulière en utilisant:
<cfset matchingListings = ormExecuteQuery("from Listing l left join l.Features as feature where feature.FeatureId = :feature",{feature = 110}) />
Ce qui est bien, mais je voudrais être en mesure de sélectionner toutes les annonces qui ont plusieurs caractéristiques (par exemple une liste qui a à la fois « Lave-vaisselle » et « Garage »)
Après quelques heures de googler et regardant à travers la documentation hibernate n'ont pas été en mesure de trouver une solution qui ne me donnera pas une erreur. Je suppose que la solution est assez simple et je suis juste trop penser ... quelqu'un a des suggestions?
au moins c'est correct, je le ferais de cette façon si je dois rester en HQL (ne pas écrire personnalisé, SQL plus efficace) – Henry
J'ai ajouté la solution la plus correcte au fond de cette réponse. –