当前位置: 首页 > 面试题库 >

Hibernate查询:集合中是否包含某个对象?

鲁淇
2023-03-14
问题内容

我有两个Hibernate数据对象。第一个是用户(具有唯一的ID,用户名等),第二个是Collaborateable类。在这两者之间存在n对m的关系(带有Set的实现)。这意味着,一个用户使用许多可协作对象,而一个可协作对象具有许多用户。另外,一个可协作对象只有一个用户作为所有者。

<class name="CollaborateableImpl" table="Collaborateable">
<id name="id" type="int" column="id">
    <generator class="increment" />
</id>

<property name="name" column="name" type="string" not-null="true" />
<property name="keywords" column="keywords" type="string"/>

<!-- Collaborateable has a Registered User as owner -->
<many-to-one name="owner" class="UserImpl" fetch="select">
        <column name="User_id_owner" not-null="true" />
</many-to-one>

<!-- Users that collaborate on this Collaborateable -->
<set name="users" table="CollaborateOn" inverse="false">        
        <key column="Collaborateable_id" />         
        <many-to-many column="User_id" class="UserImpl" />    
</set>

我想实现一个Hibernate查询,该查询搜索具有特定用户作为所有者或在Collaborateable.users集中包含相同特定用户的Collaborateable。此外,还应该有一个简单的WHERE子句来检查关键字。

Hibernate中是否有类似CONTAINS运算符的东西?

例如:

FROM CollaborateableImpl WHERE (owner = :user OR users CONTAINS :user) AND keywords like '%:searchString%'

否则,您知道如何通过联接解决此问题吗?


问题答案:

您正在寻找elements关键字。

select c 
FROM CollaborateableImpl c 
WHERE (
    c.owner = :user 
    OR :user in elements(c.users)
)
AND c.keywords like '%:searchString%'


 类似资料:
  • 表的结构是: null 以下是我目前掌握的信息:

  • 本文向大家介绍检查Java HashSet集合是否包含另一个Collection,包括了检查Java HashSet集合是否包含另一个Collection的使用技巧和注意事项,需要的朋友参考一下 若要检查HashSet是否包含另一个,请使用方法。 设置第一个HashSet 设置第二个HashSet 现在检查 以下是检查Java中的HashSet集合是否包含另一个Collection的示例 示例 以

  • 问题内容: 所述Collection.contains()方法检查如果一个集合包含一个给定的对象,使用该方法来执行比较。 从Java7 Javadoc: 布尔contains(Object o) 如果此集合包含指定的元素,则返回true。更正式地说,当且仅当此集合包含至少一个元素(e == null?e == null:o.equals(e))时,返回true。 有没有一种聪明的方法来检查集合是否

  • 我正在制作一些lambda来从dynamoDB表中获取数据。 DynamoDB表具有 复合主键 'setId'作为分区键(范围键)(我用这个词'set'作为名词,就像'group'一样) 'id'作为排序键(散列键) 如果我理解正确, 我可以使用setId来查询,因为DynamoDb通过分区键进行集合。 所以我尝试了这个参数。 但它返回错误 Q. 获取集合是否需要排序键? 提前谢谢! 仅供参考)我

  • 问题内容: 我再次使用swift数组和NSArray仅提供的containsObject! 我将swift数组桥接到NSArray来执行以下操作: 它通常可以正常工作,但是只要我放一个String就可以了!在字符串类型的数组中,它崩溃。即使containsObject确实占用了AnyObject! 声明一个字符串!数组也无济于事 但是一样没有效果很好 那么我该如何显式包装东西?我真的不明白为什么我

  • 主要内容:对无序数组的查询,对有序数组的查询在实际开发中,经常需要查询数组中的元素。例如,学校为每位同学分配了一个唯一的编号,现在有一个数组,保存了实验班所有同学的编号信息,如果有家长想知道他的孩子是否进入了实验班,只要提供孩子的编号就可以,如果编号和数组中的某个元素相等,就进入了实验班,否则就没进入。 不幸的是,C语言标准库没有提供与数组查询相关的函数,所以我们只能自己编写代码。 对无序数组的查询 所谓无序数组,就是数组元素的排列没有规律