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

能否使用SpEL在@Query注解中注入常量?

用SpEL在Spring Data JPA @Query中引用静态常量

当然可以用Spring Expression Language(SpEL)实现静态常量的注入,替代字符串拼接的方式,写法更简洁规范。

实现示例

直接在@Query的SQL语句中通过T()表达式引用静态常量,需要指定常量类的全限定类名:

// 替换com.yourpackage为你实际的Constant类所在包路径
@Query(value = "UPDATE kdo set is_revise=0, update_by=#{T(com.yourpackage.Constant).CREATOR}, update_time= CURRENT_TIMESTAMP where kdo.id=:kdoId", nativeQuery = true)
int flagRevised(String kdoId);

关键说明

  • T()是SpEL中引用Java类型的语法,通过它可以直接访问类的静态属性或方法
  • 这种方式无需手动做字符串拼接,Spring会自动解析SpEL表达式并注入常量值到SQL中
  • 要求Constant类是public的,且CREATOR是public static修饰的常量

内容的提问来源于stack exchange,提问作者Adi Prasetyo

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 09:49:52