1.老项目使用 hibernate 的框架,entry 层主键 id 使用的是 Integer 类型.代码如下:
...
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
...
2.接口里面调用 getId 的时候会报 java.lang.NoSuchMethodError 的错误.
adviserChanges.setService_log_id(serviceLog.getId());
3.报错信息如下:
java.lang.NoSuchMethodError:cn.xxx.xxx.xxx.modules.studyservice.entity.ServiceLog.getId()I
atcn.xxx.xxx.bj.modules.auslocal.service.AssignBigClassStudentService.assignAdviser(AssignBigClassStudentService.java:371)
atcn.xxx.bpm.bj.modules.auslocal.service.AssignBigClassStudentService$$FastClassByCGLIB$$d542d115.invoke(<generated>)
4.刚开始猜测是不是因为编译有问题,后来反编译了.class 文件,发现反编译之后是有 getId 这个方法的. 而且测试环境和本地都是好使得,但是线上就出问题了.
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.