【问题标题】:Using "similar to" or "~*" in jpql在 jpql 中使用“类似于”或“~*”
【发布时间】:2015-05-27 10:18:34
【问题描述】:

我在playframework 2.2 中使用postgresqljpa

我正在尝试通过使用similar to 之类的this 线程在我的JPQL 中使用like with in

select * from table where lower(value) similar to '%(foo|bar|baz)%';

我在我的 JPQL 中尝试过 similar to~*,但两者都有效。

在使用 similar to 时会给出

IllegalArgumentException: org.hibernate.hql.internal.ast.QuerySyntaxException: unexpected token: similar near line 1

除了在JPQL 中使用like 之外,我还有什么方法可以使用similar to~* 之类的功能?

谢谢

【问题讨论】:

  • 如果您阅读过任何 JPQL 参考资料,您就会知道这不是有效的 JPQL,所以我不知道将任何 SQL 塞入 JPQL。 JPQL 确实有“LIKE”;互联网搜索会显示详细信息
  • @NeilStockton: likesimilar to~* 完全不同。
  • @NeilStockton 我知道它在例外情况下也无效,但我试图搜索similar to除了使用like
  • @nameless horse,是的,我知道它们是不同的,但关键是网络上有对 JPQL 的引用。当查询不适合 JPQL 时,您将拥有一个“本机查询”,您可以在其中添加任意数量的特定于数据库的语法。

标签: java postgresql jpa playframework jpql


【解决方案1】:

EclipseLink 中支持正则表达式,请查看 2.4 的发行说明:

但我不知道hibernate是否也支持它。认为它不是 JPA 规范的一部分。

【讨论】:

  • 抱歉回复晚了,但我之前尝试过 eclipse 链接,所以我会通过它,无论如何,谢谢:)
猜你喜欢
  • 2010-11-23
  • 1970-01-01
  • 2014-04-06
  • 1970-01-01
  • 2021-05-27
  • 2020-09-14
  • 1970-01-01
相关资源
最近更新 更多