代码之家  ›  专栏  ›  技术社区  ›  Damien

通过HQL检查两个集合的交集

  •  8
  • Damien  · 技术社区  · 16 年前

    我有一个类,它有一个集合,映射为该类的nHibernate映射文件中的一个包,并且我希望返回该类的所有实例,该类的集合有一个或多个我传入的对象。

    例子:

     <bag name="AllowedRoles" table="Many-To-Many Table" lazy="false">
          <key column="ParentDefinition" /> //Column from Many-To-Many Table
          <many-to-many class="MyRolesClass" column="ParentRole" /> //Column from Many-To-Many Table
     </bag>
    

    我迄今为止尝试过的例子:

    Select distinct d from DocumentDefinition d, MyRolesClass r where r in :roles and r in elements(d.Group)
    

    希望清楚!干杯!

    1 回复  |  直到 16 年前
        1
  •  8
  •   Diego Mijelshon    15 年前

    select distinct d
    from DocumentDefinition d, MyRolesClass r
    where r in (:roles) and r in elements(d.AllowedRoles)
    

    然后使用 .SetParameterList("roles", collectionOfRoles)

    顺便说一句,我更改了集合名称,它与您发布的映射不匹配。