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

时间:2019-01-24 09:16:03

标签: java spring hibernate jpa spring-data-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);

1 个答案:

答案 0 :(得分:1)

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

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