繁体   English   中英

如何在where子句中使用枚举作为JPA中的常量检查

[英]How to use enum in where clause as constant check in jpa

我是jpa的新手,正在尝试编写查询。 查询与枚举有关。 我有一个枚举,我想基于枚举获取记录。

在下面的查询deviceStatus是一个枚举。 当我定义lk.deviceStatus = LOCKER_CLOSE给出错误时:

“ where子句”中的未知列“ LOCKER_CLOSE”

@Query("SELECT lk from Locker lk where lk.terminal.id=:terminalId 
and lk.deviceStatus =LOCKER_CLOSE and lk.isEmpty =true  
and :size IS NULL OR lk.lockerSize=:size")


public List<Locker> testOneFunction(@Param("terminalId") String 
 terminalId, @Param("size") LockerSize size);

尝试使用完全合格的枚举类,例如

SELECT lk from Locker lk where lk.terminal.id=:terminalId 
and lk.deviceStatus = com.somepackage.MyStatusEnum.LOCKER_CLOSE 
and lk.isEmpty =true and :size IS NULL OR lk.lockerSize=:size

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM