Java.lang.ClassCastException: java.lang.Long не может быть добавлено в java.lang.Integer в java 1.6 - программирование
Подтвердить что ты не робот

Java.lang.ClassCastException: java.lang.Long не может быть добавлено в java.lang.Integer в java 1.6

Даже я бросаю Object в int, но это исключение происходит...

На самом деле мой метод Hibernate-JPA возвращал Object затем я конвертирую этот Object в int...

Вот мой код 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();
}

Теперь я конвертирую этот Object как int:

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

Я конвертирую Object в Integer.

4b9b3361

Ответ 1

Использование:

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

вместо.

Метод .intValue() определяется в классе Number, который Long продолжается.

Ответ 2

Число результатов может (теоретически) быть больше, чем диапазон целого числа. Я бы реорганизовал код и работал с возвращенным длинным значением.