Hibernate Criteria API 中 Restrictions.like 和 .ilike 的区别 您所在的位置:网站首页 like和Ilike有什么区别 Hibernate Criteria API 中 Restrictions.like 和 .ilike 的区别

Hibernate Criteria API 中 Restrictions.like 和 .ilike 的区别

2023-06-16 07:47| 来源: 网络整理| 查看: 265

Hibernate Criteria API 中 Restrictions.like 和 .ilike 的区别

Hibernate 的 Criteria API 具有 Restrictions.ilike 函数,该函数具有以下协定:

不区分大小写的“like”,类似于 Postgres ilike 运算符

这很酷。但是同一个类也有 like 功能,合同更加模糊:

对命名属性应用“like”约束

例子

Criteria cr = session.createCriteria(Employee.class); // To get records having fistName starting with zara cr.add(Restrictions.like("firstName", "zara%")); // Case sensitive form of the above restriction. cr.add(Restrictions.ilike("firstName", "zara%")); java 推荐答案

在 MySQL 中,like 运算符的大小写敏感性取决于列的类型及其排序规则(参见 http://dev.mysql.com/doc/refman/5.5/en/case-sensitive.html)。

Hibernate 只是 SQL 之上的一层。like 运算符的约定是发出一个 SQL like 运算符。如果您希望 MySQL 和 PostgreSQL 相同,请在数据库模式中选择正确的类型和排序规则。但是 Hibernate 不能神奇地让所有数据库都使用相同的规则。

设计您的应用程序,选择和设计您的数据库,以便您观察到的行为是您期望的行为。

PS:但我同意 Hibernate 的 javadoc 是......完美的。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有