java - hql 的字符串分割函数

标签 java hibernate hql

我有以下 hql 查询,

from Channe where ip='1.11.6.0';

但在数据库中,IP 保存为 1.11.6.0:8080

所以我需要修改查询,用分隔符“:”分隔 ip 并采用先到值。我不想修改值为 1.11.6.0:8080 的搜索。

最佳答案

请参阅 Hibernate 文档中的此页面。下面的页面上有一个名为 14.10 的部分。表达式

http://docs.jboss.org/hibernate/orm/3.3/reference/en/html/queryhql.html

除其他外,它还说:

string concatenation ...||... or concat(...,...) current_date(),

...

Any function or operator defined by EJB-QL 3.0: substring(), trim(), lower(), upper(), length(), locate(), abs(), sqrt(), bit_length(), mod()

但实际上,您最好按照@Hansraj 在评论中建议的方式进行操作,并在搜索词中附加通配符

String query = "from Channe where ip like :term";

entityManager.createQuery(query).setParameter("term",ipString + "%");

当然,这假设您的数据类型是字符串。

关于java - hql 的字符串分割函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25869388/

相关文章:

java - 即使存在 throws 语句,也会收到 FileNotFoundException

java - 将方法作为参数传递

java - 国王的迷宫

java - 如何在 Android UI 中设置布局背景

java - HSQL 组织.hsqldb.HsqlException : invalid schema name

java - hibernate 。检查日期范围是否在另一个日期范围内

java - 在 hibernate 中包含 log4j 属性文件以显示带有值而不是问号的查询

mysql - 我们可以通过检查 SQL 和 HQL 中的 if else 条件来设置表名吗?

java - 对象中带空参数的 Hql 构造函数查询

mysql - 如何写Nhibernate Query C# .net Mysql