Hibernate : java.lang.Classcastexception-Fehler: java.lang.Integer kann nicht gewirkt werden, um java.lang.Doppel

Meine Mitarbeiter Entität definiert, in Java ist wie folgt :

final public class Staff {
    private int staffId;
    private String firstName = null;
    private String lastName = null;
    private String Email = null;
    private double salary;
    //and the setters and getters
}

Mein Abfrage-code :

SessionFactory sessionFactory = new Configuration().configure().buildSessionFactory();
Session session = sessionFactory.openSession();
Staff staff = null;
try {
    Criteria criteria = session.createCriteria(dto.Staff.class);
    criteria.add(Restrictions.eq("salary", 1000000));
    staff = (Staff) criteria.uniqueResult();
} catch(Exception e) {
    System.out.println("Error : " + e);
} finally {
    session.close();
}

Aber wenn ich diese ausführe bekomme ich eine Fehlermeldung, die sagt :

java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.Double

Wenn ich explizit umgewandelt, die Zahl in eine double funktioniert es :

criteria.add(Restrictions.eq("salary", (double) 1000000));

Gibt es eine Möglichkeit, dies zu tun, ohne das explizite casting?
Auch dachte ich, dass bei Java -, Integer -, Double-conversion Implizit war?

InformationsquelleAutor Amitab Das | 2013-11-15

Schreibe einen Kommentar