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

hql“contains”语句如何?

  •  3
  • Itamar  · 技术社区  · 15 年前

    我有一个实体,它有一个名为tags的字符串属性。我想根据是否在tags属性中找到某个字符串来查询这个实体。

    例如,我有一个函数ilist getentitybytag(string tag),它将返回所有在其“tag s”属性中具有tag值的实体。

    我试过用ICriteria方法…expression.in(propertyname,value),但正好相反。我需要像expression.in(value,propertyname)这样的东西。

    也许iquery会是一个更好的策略,但我还没有找到任何类型的hql语句,因为属性包含“abc”。

    任何帮助或方向都会很好,谢谢!

    2 回复  |  直到 15 年前
        1
  •  0
  •   Alex Reitbort    15 年前

    你的意思是expression.like(propertyname,value)吗?

        2
  •  3
  •   jedierikb grijalvaromero    13 年前

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

    • 您可能需要将搜索的字符串和搜索的字符串都转换为小写字母。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。

    推荐文章