【问题标题】:Postgre SQL LIKE for IntegerPostgresql LIKE for Integer
【发布时间】:2011-06-28 05:22:11
【问题描述】:

我的项目有一些问题,我们使用 PostgreSQL 和 Hibernate 作为 ORM。 我想在我的表中搜索任何列类型(INTEGER、STRING、TEXT)。 Hibernate 哪里出了问题,我知道我可以执行什么,例如 LIKE 运算符 像这样的 INTEGER 类型:

select * from Table1 where size::text like '%3';

但是该死的 Hibernate 将 ::TEXT 作为 self 参数并抛出异常。 我怎样才能避免这个错误? 谢谢。

【问题讨论】:

    标签: java hibernate postgresql


    【解决方案1】:

    尝试做:

    cast(size as text)
    

    应该有帮助。

    【讨论】:

    • 谢谢,对我有帮助!顺便说一句,我找到了这个解决方案:Predicate parcelNumberIdPredicate = cb.like( parcelDO. get("parcelNumberId").as(String.class), parcelNumberId + "%");
    【解决方案2】:

    使用 CAST:

    select * from Table1 where CAST(size AS text) like '%3';
    

    【讨论】:

      【解决方案3】:

      这可能无法回答您的问题,但是如果您想查找以 3 结尾的数字,请使用模块运算符

      select * from Table1 where (size % 10) == 3;
      

      【讨论】:

      • 如果整数需要“喜欢”,那看起来就大错特错了。
      • 我同意,但是对于我非常简单的任务,它可以应用。
      • 顺便说一句,康拉德你能提出更有效的方法吗?
      猜你喜欢
      • 2018-04-01
      • 2021-02-20
      • 1970-01-01
      • 2012-03-08
      • 2014-10-02
      • 1970-01-01
      • 1970-01-01
      • 2011-05-03
      • 2020-10-19
      相关资源
      最近更新 更多