接口返回VO时候,新增一个出参,报错了。

Blade 未结 1 679
kani
kani 2021-11-08 16:29

一、该问题的重现步骤是什么?

  1. 现在的解决方案是在数据库映射实体中加入新字段。使用@TableField(exist=false)注解标注为不映射。

    image.png

2. 因为这样看起来没有把数据库对象和展示字段隔离。所以在VO中新增字段后,接口中查询是否收藏后,填入返回字段中。代码如下,

image.png


报错信息为:

org.springblade.modules.center.entity.NetworkShop cannot be cast to org.springblade.modules.center.vo.NetworkShopVO

3.


二、你期待的结果是什么?实际看到的又是什么?


希望在VO中新增字段,并直接返回前端。而不是修改数据库映射实体。


三、你正在使用的是什么产品,什么版本?在什么操作系统上?


四、请提供详细的错误堆栈信息,这很重要。

java.lang.ClassCastException: org.springblade.modules.center.entity.NetworkShop cannot be cast to org.springblade.modules.center.vo.NetworkShopVO

at java.util.ArrayList.forEach(ArrayList.java:1259)

at org.springblade.api.NetworkController.page(NetworkController.java:60)

at org.springblade.api.NetworkController$$FastClassBySpringCGLIB$$71ffc969.invoke()

at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)

at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:771)

at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)


1条回答
  •  bluerose
    bluerose (楼主)
    2021-11-09 12:03

    你的mybatis xml文件里的resultmapping对象需要改为NetworkShopVO类就行,表示结果转换为这个对象

    0 讨论(0)
提交回复