tutorial tools tablas para mapear how generate español engineering descargar create cfg nhibernate hibernate nhibernate-mapping

nhibernate - tools - Aplicar el atributo de filtro de Hibernate a una bolsa con una relación de muchos a muchos



mapear tablas hibernate eclipse (1)

Lo averigué. Para cualquier persona interesada, tenía mi atributo <filter> en el lugar equivocado:

Antes de:

<bag name="Clips" table="ctv_bb_contentAudVidLinks"> <key column="fk_contentPackageId"></key> <many-to-many class="Clip" column="fk_AudVidId"></many-to-many> <filter name="effectiveDate" condition=":asOfDate BETWEEN startDate and endDate" /> </bag>

Después:

<bag name="Clips" table="ctv_bb_contentAudVidLinks"> <key column="fk_contentPackageId"></key> <many-to-many class="Clip" column="fk_AudVidId"> <filter name="effectiveDate" condition=":asOfDate BETWEEN startDate and endDate" /> </many-to-many> </bag>

Considere el siguiente archivo de mapeo de Hibernate:

<hibernate-mapping ...> <class name="ContentPackage" table="contentPackages"> <id name="Id" column="id" type="int"><generator class="native" /></id> ... <bag name="Clips" table="contentAudVidLinks"> <key column="fk_contentPackageId"></key> <many-to-many class="Clip" column="fk_AudVidId"></many-to-many> <filter name="effectiveDate" condition=":asOfDate BETWEEN startDate and endDate" /> </bag> </class> </hibernate-mapping>

Cuando ejecuto el siguiente comando:

_session.EnableFilter("effectiveDate").SetParameter("asOfDate", DateTime.Today); IList<ContentPackage> items = _session.CreateCriteria(typeof(ContentPackage)) .Add(Restrictions.Eq("Id", id)) .List<ContentPackage>();

El SQL resultante tiene la cláusula WHERE en la tabla de asignación intermedia (contentAudVidLinks), en lugar de la tabla "Clips" aunque he agregado el atributo de filtro a la bolsa de clips.

¿Qué estoy haciendo mal?