HQL“包含”声明如何?

2024-01-12

我有一个实体,它有一个名为“标签”的字符串属性。我想根据某个字符串是否位于 Tags 属性中来查询该实体。

例如,我有一个函数 IList GetEntityByTag(string tag),这将返回“Tags”属性中具有标签值的所有实体。

我尝试通过 ICriteria 方法... Expression.In(PropertyName, Value) 但这恰恰相反。我需要类似 Expression.In(Value, PropertyName) 的东西。

也许 IQuery 是一个更好的策略,但我还没有找到 Property CONTAINS 'abc' 的任何类型的 HQL 语句。

任何帮助或方向将非常感谢!


如果您想知道标签是否是 Tags 属性中的子字符串,您可能需要考虑以下提示:

  • 您可能希望首先将正在搜索的字符串和正在搜索的字符串转换为小写。 Expression.ilike 会为您做到这一点。分数。
  • 要查明您的搜索词是否在字段中的任何位置,您可以将 ilike 函数中的 MatchMode 参数设置为 MatchMode.ANYWHERE。

如果,正如您之前评论的那样,

假设我的财产,“标签”= a;b;c;d;e。我想知道“a”是否 存在于标签中。将要 Expression.Like("Tags", "a") 返回 真的?

如果 'a;b;c;d;e' 是字符串,Expression.ilike( "Tags", "a", MatchMode.ANYWHERE ) 将返回 true。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

HQL“包含”声明如何? 的相关文章

随机推荐