java - 如何将 hibernate 从 4.3 迁移到 5.3 -Type Resolver Class
问题描述
我正在将我的应用程序从休眠 4.3 升级到 5.3。我在 4.3 中使用了 org.hibernate.type.TypeResolver 中的 heuristicType 方法。这个类从 5.3 版本中被弃用,如何重写这段代码。
示例代码:
Query query = (Query) session.createQuery(queryString);
query.setParameter(0,value, (new TypeResolver()).heuristicType(value.getClass().getName()));
解决方案
如果您担心当值为 时它无法检测到类型null
,您可以只传递一个非空常量一次,setParameter
然后传递真正的值。第一个类型的处理程序将被确定并缓存以供对同一Query
对象的后续调用。但是请记住,0 是无效索引。它们在 JPA 中从 1 开始。只是由于实施失败,他们曾经允许 0 索引参数。只需将它们更改为名称,您就不必担心它。
简而言之:
Query query = (Query) session.createQuery(queryString);
query.setParameter("name", NOT_NULL_CONSTANT);
query.setParameter("name", value); // actual value
推荐阅读
- python - 我想在办公室找到一天中最忙的时间
- azure-storage - 在 Azure 存储上创建 PDF 后写入 PDF 文件内容
- ios - 快速为谷歌地图的圆圈添加标题
- c# - 如何使组合框可按关键字搜索
- php - 如何将值从存储库传递到 laravel 中的控制器
- laravel - Laravel Blade 中的“::”语法是什么意思(例如:@include('googletagmanager::head'))?
- javascript - 如何在 JSON 数据中搜索动态结果
- django - Django 日志配置在本地服务器上工作,但不在远程服务器上
- node.js - 这个问题 TypeError: callback is not a function
- excel - MS Excel:将日期标准化为一种格式