我是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

10-06 06:40