Search code examples
javafloating-pointhibernate-criteria

Comparing Float value in hibernate criteria


I have a column called "Percentage", which is a float, in my database and I'm trying to get all the rows who's Percentage is 0. But I'm getting the error below.

public List<DataFromDB> getDatafromDB(){
Criteria cr = sessionFactory.getCurrentSession().createCriteria(DataFromDB.class);
cr.add(Restriction.eq("Percentage",0));
return cr.list();
}

Error:
java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.Float


Solution

  • you should be using 0f to indicate float. 0 is an integer.

    public List<DataFromDB> getDatafromDB(){
        Criteria cr = sessionFactory.getCurrentSession().createCriteria(DataFromDB.class);
        cr.add(Restriction.eq("Percentage",0f));
        return cr.list();
    }