Base Model中dao的find方法问题

我的数据库表字段是int类型的。但是生成的base model中Java属性却是Long类型的。结果用dao.find方法查询,出现了cast exception异常。为什么会这样呢?生成的字段类型和查出来的字段类型和数据库类型应该保持一致吧。比如我这个例子中,都应该是Integer类型的。

退一步讲,如果生成的base model中Java的字段类型是Long,那find方法查出来也应该是Long类型吧,这样是不是会更好些呢?

WechatIMG14.pngWechatIMG13.pngWechatIMG15.png

评论区

jfinal初识

2019-04-19 17:24

现在问题的关键是,我用find方法查数据库,用List《我的model》接收的。以上的问题导致我现在不能这样使用了。

JFinal

2019-04-20 00:09

数据库表字段是 int 类型但是生成的 base model 中 Java 属性却是 Long 类型的

原因主要是以下两个之一:
1:字段设置成了无符号整型:unsigned int
2:字段长度设置超过默认值,例如长度设置为 12 就会生成为 Long

这个映射获取的字段类型是 JDBC 自动返回的, jfinal 并未干预过。只要按上面的原因改变一下字段为 "非unsigned int",或者长度使用默认值即可

热门反馈

扫码入社