spring-data-jpa - 如何在@Query 中使用枚举作为常量

标签 spring-data-jpa

我试图在 != 之后放置一个完整的类路径(com.xxxx.State.Finish)但没有帮助。

@Query("select c from CustomOrder c where c.dealer = :roleName and 
     c.nextManager = null and c.currentState != Finish")
List<CustomOrder> findOpenOrder(@Param("roleName") String roleName);

实体:
@Getter
@Enumerated(EnumType.STRING)
CustomOrderEnums.State currentState;

枚举:
public enum State {
    Open, Finish
}

最佳答案

@Query("select c from CustomOrder c where c.dealer = :roleName and 
     c.nextManager = null and c.currentState != com.xxx.FooEnum.Finish")
FooEnum必须是一流的而不是内部的。如果必须是内部类,请使用 '带引号的字符串(没有没有尝试过 ' )。
@Query("select c from CustomOrder c where c.dealer = :roleName and 
     c.nextManager = null and c.currentState != 'Finish'")

我刚刚发现,而不是使用 @Query它可以简单地用作:
List<User> findIdByRoleRoleAndProvinceType(String role, ProvinceEnum.ProvinceType provinceType);

这是实体用户:
@Entity
public class User {
    Role role; // entity has a String field role;
    Province province; // entity has a ProvinceEnum.ProvinceType field type.
...
}

关于spring-data-jpa - 如何在@Query 中使用枚举作为常量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47767755/

相关文章:

java - Spring Boot JPA Lazy Fetch 不起作用

java - JPA Repository.findById() 返回 null 但该值存在于数据库中

mysql - 选择实体包含列表的位置,哪些元素具有另一个列表

java - 带有可递增变量的 Spring 自定义 @Query

spring - Null Last 不适用于 spring 数据 jpa

java - Spring Data JPA - 如何将查询结果转换为实体类

java - CrudRepository.save 是否为 spring data 1.13.18.RELEASE 返回 null

spring-data - 如何禁用在 spring 数据的可分页/排序中添加 JPQL 别名?

kotlin - 如何正确配置 HikariCP 以处理必须保持事件状态的连接?

java - lombok - 找不到符号 getId()