【发布时间】:2017-03-18 15:55:44
【问题描述】:
我有以下形式的课程。
@Entity
public class Person{
public enum SEX {
MALE, FEMALE, OTHER
}
private String name;
private SEX sex;
}
我有一个扩展JpaRepostory 的接口类。枚举在查询中不起作用。我正在尝试使用Spring JPA 获取数据。
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,);
}
我得到以下异常
Caused by: org.hibernate.hql.internal.ast.QuerySyntaxException: Invalid path: 'com.example.Person.Sex.MALE'
我该如何解决?
【问题讨论】:
-
或使用参数并将其设置为枚举值
-
你的枚举被命名为 SEX,而不是 Sex。您在 Person 中的性别属性名为 sex,而不是 SEX。
-
请遵循 Java 命名约定。它实际上有助于防止错误。
-
你是如何在实体类中映射 sex 列以及 sex 的数据库列类型是什么。
标签: java spring hibernate jpa enums