hibernate我们可以用java制作UPPER来代替UPPER函数吗?
我想删除hql中使用的upper函数,并在java端生成upper。以下是查询:-
String hql = "SELECT addType FROM addrDO WHERE **UPPER**(id.address) = **UPPER**('"+ address +"')";
我想在查询中使用toUpperCase()
java函数,而不是使用UPPER,比如java端的"id.address".toUpperCase()
和address.toUpperCase()
,现在查询应该是
String hql = "SELECT addType FROM addrDO WHERE id.address = address;
以上工作不会有任何副作用
# 1 楼答案
您试图生成一个动态查询,该查询最终将由数据库服务器执行,而不是在JVM中执行,因此您需要遵守数据库服务器的语法
如果您想使用java的toUpperCase方法,最好中断查询并使用类似
这是不可暗示的,因为您不必要地耗尽了jvm的内存
# 2 楼答案
第一个查询使用
UPPER
函数在WHERE
子句中实现不区分大小写的比较,第二个查询使用区分大小写的比较因为比较必须在数据库中进行,所以不能在应用层用Java的
toUpperCase
替换它