Java:An attempt was made to call a method that does not exist. The attempt was made from the following location:

1. 问题描述

一个字段的类型从int变成了bigint,实体类也要同步更新为Long。修改完后只更新了两个实体类,结果运行就报错了。    

img

根据日志来看说“EntityKsGc.getKscc()Ljava/lang/Long;” 这个方法不存在,但这个类确实改成了Long类型,另外从eclipse来看,也只提示修改了两个文件。另一个是EntityRecord.java,需要从EntityKsGc.getKscc()获得值。

2.解决

查看日志,报错行在“ServiceImplRecord.insert(ServiceImplRecord.java:78)”,代码如下:

    record.setKSCCBH(gc.getKscc());

用文本编辑器打开ServiceImplRecord.class文件发现了问题,见下图:
img
class文件中还是传递的integer类型。

  • 原因找到了:ServiceImplRecord.class是根据老的EntityKsGc编译之后的结果,当修改EntityKsGc后,需要同步更新ServiceImplRecord.class。
posted @ 2024-11-15 10:21  huiy_小溪  阅读(45)  评论(0编辑  收藏  举报