【问题标题】:hibernate searching case insensitive休眠搜索不区分大小写
【发布时间】:2015-11-23 07:56:07
【问题描述】:

您好,我的网络应用程序的搜索功能有问题。我希望以小写形式搜索它,然后返回所需的适当数据,但我的代码只接受正确的字母大小写。这是代码。我有两种搜索方式

第一个字符串:La Fleur Petrus -> 它返回正确的字符串 第二:la fleur petrus -> 返回空,为什么?

        String sql_query = "SELECT * FROM `wine` WHERE name LIKE '%"+wineName+"%'";

    SQLQuery query = getSession().createSQLQuery(sql_query);
    query.addEntity(Wine.class);

    return query.list();

我也试过这个,但也失败了。

        Criteria criteria = getSession().createCriteria(Wine.class)
            .add(Restrictions.ilike("name", '%'+wineName+'%'))
            .setMaxResults(30);
    return (List<Wine>)criteria.list();

【问题讨论】:

  • 也许你的数据库会考虑字符串的大小写。
  • 你的意思是整理?我还没有检查...

标签: java hibernate web-applications


【解决方案1】:

U可以在两边都使用lower/upper

WHERE LOWER(column_name) like lower('%value%');

【讨论】:

  • 为什么请在更改后分享您的查询。
  • String sql_query = "SELECT * FROM wine WHERE LOWER(name) LIKE '%"+wineName.toLowerCase()+"%'";这就是变化..
  • 只返回该查询的空结果。
  • 它适用于我的 phpmyadmin 我不知道为什么如果在实际网页结果中结果为空,但如果我相应地输入正确的大小写它会给出结果。 SELECT * FROM wine WHERE LOWER(name) LIKE LOWER('%la fleur petrus%')
猜你喜欢
  • 2017-06-20
  • 1970-01-01
  • 2011-05-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-09-15
  • 2013-09-26
  • 2023-03-20
相关资源
最近更新 更多