亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

將方法傳遞給控制器??:java.lang.Long 不能轉換為 java.lang.Integer

將方法傳遞給控制器??:java.lang.Long 不能轉換為 java.lang.Integer

翻閱古今 2023-06-04 17:51:39
我正在嘗試在使用 Java 8、Spring 和 Hibernate 的項目中將方法傳遞給控制器。但是我遇到了“請求處理失??;嵌套異常是 java.lang.ClassCastException:java.lang.Long 無法轉換為 java.lang.Integer”錯誤的問題。我來自 KomitentDAO 的方法看起來像這樣@Overridepublic int vratiBroj() {    Session currentSession = sessionFactory.getCurrentSession();    int num = 0;    Query query = currentSession.createQuery("SELECT count(*) from Komitent");     num = (int) query.getSingleResult();    return num;}控制器就像這樣@GetMapping("/dodaj")public String prikaziForm(Model theModel) {    Komitent komt = new Komitent();     int a = komitentService.vratiBroj();    komt.setSifra(a);       theModel.addAttribute("komitent", komt);    return "komitent-form";}我需要在我的函數中在 komt.Sifra 中設置一個整數。查詢只是一個測試,它可以是任何其他返回單個 int 的查詢。我做錯了什么,是否有更好的方法來查詢數據庫并將值返回給模型?
查看完整描述

1 回答

?
ITMISS

TA貢獻1871條經驗 獲得超8個贊

count(*) 返回 Long 而不是 Integer。


所以你的方法應該是這樣的:


public int vratiBroj() {

    Session currentSession = sessionFactory.getCurrentSession();

    Query query = currentSession.createQuery("SELECT count(*) from Komitent"); 

    long num = (Long) query.getSingleResult();

    return num.intValue();

}


查看完整回答
反對 回復 2023-06-04
  • 1 回答
  • 0 關注
  • 245 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號