Java 带hql的字符串拆分函数

Java 带hql的字符串拆分函数,java,hibernate,hql,Java,Hibernate,Hql,我有以下hql查询 from Channe where ip='1.11.6.0'; 但在db中,IP保存为1.11.6.0:8080 因此,我需要修改查询,使用分隔符“:”分割ip,并取firstcome值。我不希望用值1.11.6.0:8080修改搜索,请尝试以下操作: SPLIT(“.”,FIELDNAME)尝试以下操作: 假设变量ip有地址 ip = "10.131.56.40:8080"; var ipSplit = ip.Split(':'); var ipStart = ipSp

我有以下hql查询

from Channe where ip='1.11.6.0';
但在db中,IP保存为
1.11.6.0:8080

因此,我需要修改查询,使用分隔符“:”分割ip,并取firstcome值。我不希望用值
1.11.6.0:8080修改搜索,请尝试以下操作:

SPLIT(“.”,FIELDNAME)

尝试以下操作:

假设变量ip有地址

ip = "10.131.56.40:8080";
var ipSplit = ip.Split(':');
var ipStart = ipSplit[0];
ipStart将仅存储10.131.56.40


这可以解决您的问题

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

其中包括:

字符串连接…| |。。。或concat(…,…)当前日期()

EJB-QL 3.0定义的任何函数或运算符:substring()、trim()、lower()、upper(), 长度()

但实际上,你最好按照@Hansraj在评论中的建议去做,并在你的搜索词中添加一个通配符

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

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

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

您是否尝试过Like查询。请尝试“从Channe where ip Like'10.131.56.40%”;您为什么不接受答案?它对您不起作用吗?如果不,为什么不?