[英]java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.Long in hibernate
[英]java.lang.ClassCastException: java.lang.Long cannot be cast to java.lang.Integer in java 1.6
即使我將Object
轉換為 int,但會發生此異常...
實際上我的 Hibernate-JPA 方法是返回Object
然后我將該Object
轉換為int
...
這是我的休眠代碼:
@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
。
利用:
((Long) userService.getAttendanceList(currentUser)).intValue();
反而。
.intValue()
方法在類Number
中定義, Long
擴展了該類。
結果的數量可以(理論上)大於整數的范圍。 我會重構代碼並改用返回的 long 值。
你可以這樣做:
int k = Math.toIntExact((Long) userService.getAttendanceList(currentUser));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.