web-dev-qa-db-fra.com

java.lang.ClassCastException: Java.lang.Long ne peut pas être converti en Java.lang.Integer dans Java 1.6

Même si je transforme Object en int, mais cette exception se produit ...

En fait, ma méthode Hibernate-JPA était de retourner Object alors je convertis cette Object en int...

Voici mon code Hibernate:

@Transactional
public Object getAttendanceList(User user){

    Query query = entityManager.createQuery("select Count(ad) from AttendanceDemo ad inner join ad.attendee at  where at.user=:user",
            Long.class);
    query.setParameter("user", user);
    return query.getSingleResult();
}

Maintenant, je convertis ce Object en int:

int k = (Integer) userService.getAttendanceList(currentUser);

Je convertis Object en Integer.

22
SWEE

Utilisation:

((Long) userService.getAttendanceList(currentUser)).intValue();

au lieu.

La méthode .intValue() est définie dans la classe Number , que Long étend.

49
fge

Le nombre de résultats peut (théoriquement) être supérieur à la plage d'un entier. Je voudrais refactoriser le code et travailler avec la valeur longue retournée à la place.

4
Jeroen Kransen