如何在 hql 请求中正确调用枚举方法? numberClass 和 symbolClass 是一个枚举

问题描述

创建名为“studentRepository”的 bean 时出错:调用 init 方法失败;嵌套异常是 java.lang.IllegalArgumentException: 查询方法 public abstract java.util.List 验证失败

    @Query(
        "SELECT new com.javamentor.dto.model.student.StudentDto(" +
                "s.id," +
                "s.firstName," +
                "s.lastName," +
                "s.middleName," +
                "s.birthday," +
                "s.email," +
                "s.enabled," +
                "s.registrationDate," +
                "s.enrollmentDate," +
                "CONCAT(s.studentClass.classLevel.numberClass.ordinal,s.studentClass.symbolClass.name)) " +
                "FROM Student s")
    List<StudentDto> findAllStudentsDTO();

解决方法

你不能这样做。您应该将枚举传递给您的 StudentDto 构造函数,然后根据需要将它们连接起来。