Hibernate不区分大小写的枚举映射标准查询

时间:2019-01-26 16:50:59

标签: java hibernate enums hibernate-criteria

我有一个具有性别列的实体。在数据库中,性别可以是“男”或“男”。这是我的Entity,Dao代码,用于使用Hibernate查询数据库。

public class Patient {

    @Column(name = "gender")
    private Gender gender;

   //Setters Getters
}


//ENUM
public enum Gender {

    MALE("MALE"), FEMALE("FEMALE");

    private final String value;

    Gender(String value) {
        this.value = value;
    }
}


//Criteria Query

    public List<Patient> findByName(String name) {
        try {
            Criteria criteria = getSession().createCriteria(Patient.class);
            criteria.add(Restrictions.sqlRestriction("REPLACE(LOWER(name),' ', '') = ?", name, StandardBasicTypes.STRING));
            return criteria.list(); // Exception here
        } catch (HibernateException e) {
            e.printStackTrace();
        }
}

这适用于'MALE',但不适用于'male',错误为“枚举类[Gender]的未知名称值[male]”。我希望映射不区分大小写,可以吗?

0 个答案:

没有答案