Hibernate 6.7 Criteria查询设null值触发空指针异常求助
解决Hibernate 6.7中Criteria查询设置Null值的异常问题
- 问题原因:Hibernate 6.7的SQM模型在处理
set方法的null参数时,无法自动推断出null对应的实体类型,导致调用getClass()时触发空指针异常。 - 解决方案:使用
JpaCriteriaBuilder.nullLiteral()方法明确指定null对应的Java类型,替代直接传递null值。
修改后的代码片段:
// 从EntityManager获取JpaCriteriaBuilder实例 val criteriaBuilder = entityManager.criteriaBuilder // 通过nullLiteral指定Tag类型的null值 criteriaQuery.set(root.get(MyEntity_.tag), criteriaBuilder.nullLiteral(Tag::class.java))
这样修改后,Hibernate能明确识别要设置的字段类型,避免因无法获取null值的类型信息而抛出异常。
内容的提问来源于stack exchange,提问作者viktor
相关产品推荐
相关产品推荐

