java.lang.ClassCastException: java.math.BigInteger cannot be cast to java.lang.Long

basemodel里面的设置,ID在数据库中的类型是bigint(MySQL),在新增的时候,并没有出现问题,但是修改操作,会报错:java.lang.ClassCastException: java.math.BigInteger cannot be cast to java.lang.Long,当Java中设置了类型为long时,也会有这个报错,这种问题应该怎么处理?image.png

评论区

22ss

2017-06-08 17:44

全部设置成number类型

salon

2017-06-08 18:03

@22ss 有没有办法在不修改数据库类型的基础上解决这个问题的吗

JFinal

2017-06-09 14:22

@salon 怎么会出现 BigInteger ? 你的字段是啥类型,长度是多少? 一般整型使用 Long 就足够了,不要用 BigInteger

salon

2017-06-09 15:01

@JFinal 使用Long类型也是同样的错误,数据库中的类型是bigint,长度20

JFinal

2017-06-09 15:02

@salon 调试跟踪一下,是哪一行代码出现的类型转换异常?

salon

2017-06-09 15:08

前端使用的freemarker,在页面上调用“${model.id}”的时候,调用了get("id"),在这里就出现了异常

JFinal

2017-06-09 15:22

Model.get(String) 这个方法可以返回任意类型,不会出这个异常,你再仔细核查一下

salon

2017-06-09 15:33

@JFinal 感谢波总,问题找到了,数据库设计的问题,谢谢

JFinal

2017-06-09 15:38

@salon 建议将 freemarker 切换到 jfinal template engine,非常顺滑

salon

2017-06-09 15:39

热门反馈

扫码入社