今天用反射给对象赋值,有一个属性始终报错,主要错误信息如下:
遇到一个java.lang.NoSuchFieldException:错误
java.lang.NoSuchFieldException: topic_path
at java.lang.Class.getDeclaredField(Unknown Source) at com.thinkgem.jeesite.modules.common_jeesite.entity.PageUtil.getResults(PageUtil.java:219) at com.thinkgem.jeesite.modules.exam.service.ExamManageServiceImpl.findAllExamEntity(ExamManageServiceImpl.java:70) at com.thinkgem.jeesite.modules.exam.service.ExamManageServiceImpl$$FastClassBySpringCGLIB$$528d1bd1.invoke(<generated>) at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204) at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:718) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157) at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:99) at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:281) at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:96) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)错误原因:
实体类:属性和数据库字段名不一致
实体类
private Integer exam_id;//题库id(主键自增) private String exam_name;//题库名字 private Integer type_id;//类型id private String exam_desc;//题库描述 private String exam_path;//考题路径 private String create_time;//创建时间
数据库
解决办法:
1、修改对象属性
2、给查询出的字段加别名和实体类属性名一致
