gpt4 book ai didi

nhibernate - 将 Hibernate 过滤器属性应用于具有多对多关系的 Bag

转载 作者:行者123 更新时间:2023-12-03 06:55:23 24 4
gpt4 key购买 nike

考虑以下 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>

当我运行以下命令时:

  _session.EnableFilter("effectiveDate").SetParameter("asOfDate", DateTime.Today);

IList<ContentPackage> items = _session.CreateCriteria(typeof(ContentPackage))
.Add(Restrictions.Eq("Id", id))
.List<ContentPackage>();

生成的 SQL 在中间映射表 (contentAudVidLinks) 上有 WHERE 子句,而不是在“Clips”表上,即使我已将过滤器属性添加到 Clips Bag 中。

我做错了什么?

最佳答案

想通了。对于任何感兴趣的人,我有我的 <filter>属性放在错误的位置:

之前:

<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>

之后:

<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>

关于nhibernate - 将 Hibernate 过滤器属性应用于具有多对多关系的 Bag,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/421075/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com