You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring Boot SQL查询报错:无父级分类时触发空指针异常

解决JPA查询中无父级分类时的空指针问题

问题根源在于HQL查询的null判断语法错误:

  • 原查询用c.parent = NULL判断父级是否为空,这是SQL/HQL的错误写法——= NULL无法匹配任何null值,因为null与任何值的比较结果都是unknown。
  • 当分类无父级时,c.parent = NULL条件不生效,查询会执行c.parent.enable = true的判断,此时c.parent为null,调用其enable属性直接触发NullPointerException。

修正后的查询代码:

@Query("SELECT c FROM Category c WHERE (c.parent IS NULL OR c.parent.enable = true) AND c.enable = true AND c.alias = ?1")
public Category findByAliasEnabled(String alias);

核心修正点:将c.parent = NULL改为c.parent IS NULL,这样能正确匹配父级为null的分类,这类分类会被第一个条件命中,不会进入后续的parent.enable判断,彻底避免空指针。

内容的提问来源于stack exchange,提问作者Ehab Kholif

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.18 11:55:54