我有以下 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/