Java 带hql的字符串拆分函数
我有以下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
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%”;您为什么不接受答案?它对您不起作用吗?如果不,为什么不?