在JPA查询中包含枚举

mjm*_*mjm 1 java enums spring hibernate jpa

我有以下形式的课程。

@Entity
public class Person{
    public enum SEX {
      MALE, FEMALE, OTHER
    }

    private String name;
    private SEX sex;
 }
Run Code Online (Sandbox Code Playgroud)

我有一个接口类,扩展了JpaRepostory。枚举不适用于查询。我正在尝试使用Spring JPAfetchig数据。

public interface PersonRepository extends JpaRepository<Person, Long> {


    @Query("SELECT p FROM Person p WHERE 
            "p.SEX = com.example.Person.Sex.MALE " +
            "AND p.name = :name")
    public List<Person> checkName(@Param("name") String name,);

}
Run Code Online (Sandbox Code Playgroud)

我得到以下异常

Caused by: org.hibernate.hql.internal.ast.QuerySyntaxException: Invalid path: 'com.example.Person.Sex.MALE'

我该如何解决?

JB *_*zet 5

您不尊重类和属性的大小写。它应该是

p.sex = com.example.Person.SEX.MALE
Run Code Online (Sandbox Code Playgroud)