将方法传递给Controller:java.lang.Long不能强制转换为java.lang.Integer

用户11910315:

我正在尝试使用Java 8,Spring和Hibernate在项目中将方法传递给控制器​​。但是我遇到“请求处理失败;嵌套的异常是java.lang.ClassCastException:无法将java.lang.Long强制转换为java.lang.Integer”的错误。

我的KomitentDAO方法看起来像这样

@Override
public 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的查询。我在做什么错,有没有更好的方法来查询数据库并将值返回给Model?

西蒙·马丁内利:

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();
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

java.lang.String中不能被强制转换为java.lang.Long中的火力实时

java.lang.Integer中不能被强制转换为java.lang.Long中

ClassCastException:无法将java.lang.Object强制转换为java.lang.Integer

java.math.BigInteger不能强制转换为java.lang.Long

java.lang.ClassCastException:无法在Java 1.6中将java.lang.Long强制转换为java.lang.Integer

Hibernate HQL强制转换:java.lang.String不能强制转换为java.lang.Enum

无法将java.math.BigInteger强制转换为java.lang.Integer

java:ClassCastException-[Ljava.lang.Long; 不能强制转换为java.lang.Long

获取Shared Preference值时,不能将ClassCastException java.lang.Integer强制转换为java.lang.Long

从SharedPreferences检索值时,无法将java.lang.String强制转换为java.lang.Integer

sharedPref.getInt:无法将java.lang.String强制转换为java.lang.Integer

在Java中进行JSON加载:java.lang.ClassCastException:无法将java.lang.Long强制转换为java.lang.Integer

JSON反序列化:java.lang.Double不能强制转换为java.lang.Long

无法将java.lang.Long强制转换为java.lang.Integer

当我要返回结果列表时,如何修复Java中的“类java.lang.Long无法强制转换为类java.lang.Integer”错误

MongoDB:无法将类java.lang.Double强制转换为类java.lang.Long

Kotlin:java.lang.ClassCastException:java.lang.Long无法转换为java.lang.Integer

java.lang.ClassCastException:无法将java.lang.Integer强制转换为java.lang.Double

休眠:java.lang.ClassCastException:无法将java.lang.Integer强制转换为java.lang.Double

Hibernate HQL强制转换java.lang.ClassCastException:无法将java.lang.Integer强制转换为java.lang.Long

如何修复:java.lang.ClassCastException:无法将java.util.ArrayList强制转换为java.lang.Integer

java.lang.Object; 不能在com.java.Test.Test.main(Test.java:16)上强制转换为[Ljava.lang.Integer;

java.lang.RuntimeException:java.lang.ClassCastException:java.lang.Long无法强制转换为java.lang.String

将java.lang.Long传递给Integer构造函数

SDN4 java.lang.ClassCastException:使用AttributeConverter时无法将java.lang.Integer强制转换为java.lang.Long

Android HashMap java.lang.ClassCastException:无法将java.lang.Integer强制转换为java.util.Map $ Entry

服务器响应“无法将java.lang.Integer强制转换为java.lang.Double”

java.lang.ClassCastException:无法将java.util.Arrays $ ArrayList强制转换为java.lang.Integer

Java.lang.Object; 不能强制转换为 <hibernate entity>