zoukankan      html  css  js  c++  java
  • Expected: class java.lang.Long, got class java.lang.Integer异常处理

    hibernate 3.1的查询,主要代码如下:

    Project project = (Project)session.get(Project.class, 1);

    ms sql 2005数据库中主键类型是bigint。

    使用main方面测试,出现: org.hibernate.TypeMismatchException: Provided id of the wrong type. Expected: class java.lang.Long, got class java.lang.Integer

    或者使用Junit测试,出现:java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.Long

    错误原因:

    session.get(Project.class, 1);方法中的参数1为Int类型,会被自动转换为Integer,而Project类中的ProjectId属性是Long,它对应的配置文件中也是java.util.Long,所以出现java.lang.Integer cannot be cast to java.lang.Long异常,

    解决方法:

    代码改成Project project = (Project)session.get(Project.class, 1L);在参数中给1加L,表示它是long类型,会自动转换成Long,或者Project project = (Project)session.get(Project.class, new Long(1));

  • 相关阅读:
    Java的基本数据类型
    第五小组链表讨论作业
    WLST 命令和变量
    Linux之find命令详解
    Linux之netstat命令详解
    Linux之 sort,uniq,cut,wc命令详解
    Linux之grep命令详解
    Linux之awk命令详解
    Linux之sed命令详解
    关于表 datatable的条件查询
  • 原文地址:https://www.cnblogs.com/luleiitlife/p/8545105.html
Copyright © 2011-2022 走看看