mysql - 转义 HQL 查询中的特殊字符
问题描述
我有以下代码
public User findUser(){
User user = null;
String userName = "People's Democratic";
String queryString = "SELECT user from User user where user.userName = :userName ";
Map<String, Object> param = new HashMap<String, Object>();
param.put("userName", userName);
try {
final Query query = entityManager.createQuery(queryString);
Set<Map.Entry<String, Object>> parameters = param.entrySet();
for (Map.Entry<String, Object> parameter : parameters) {
query.setParameter(parameter.getKey(), parameter.getValue());
}
user = (User) query.getSingleResult();
} catch (Exception e) {
logger.error("Exception in fetching user for the user = "+userName+ " and queryString = "+queryString, e);
if (e instanceof NoResultException) {
// User not found
}
}
return user;
}
尽管用户表中存在用户名 = People's Democratic的用户,但此代码在线给出异常
查询.getSingleResult()
抛出以下异常:
javax.persistence.EntityNotFoundException:无法找到 com.domain.User 的 id .....
我尝试使用转义用户名
StringEscapeUtils.escapeSql(userName) 块引用
但这没有帮助。
请帮忙。提前致谢。
解决方案
推荐阅读
- javascript - 手风琴可扩展它可以向下滑动,但不会向上滑动
- java - 如何从数组列表中获取不同的值?
- database - MongoDB电子商务网站的数据建模
- apache-spark - 配置 spark 应用程序参数的最佳方法是什么?
- graphics - Assimp 不加载从搅拌机导出的 obj 文件的层次结构
- artifactory - Conda 远程存储库 URL 是否与 Artifactory 一起使用?
- sql - SQL 代码在 MS-Access 中进行数据联合并保留相关信息
- python - 电子前沿基金会的猫笑话
- c++ - 为什么我的 cpp 单元测试在运行时寻找额外的库?
- python - 如何在 django 命令中实现应用程序命名空间?