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 这个方法的. 而且测试环境和本地都是好使得,但是线上就出问题了.