istener method 'public void com.situ.mallsdauweb.controller.OrderController.checkStatus(java.lang.Integer)' threw exception; nested exception is org.apache.ibatis.binding.BindingException: Mapper method 'com.situ.mallsdauweb.mapper.OrderInfoMapper.updateByCode' has an unsupported return type: class com.situ.mallsdauweb.entity.OrderInfo这是什么错误
时间: 2023-11-20 18:05:59 浏览: 23
这个错误提示中指出了一个 `org.apache.ibatis.binding.BindingException` 异常,这个异常是由于 `OrderInfoMapper` 接口中的 `updateByCode` 方法返回类型不受支持所导致的。
根据异常信息,我们可以看到返回类型为 `OrderInfo`,而 MyBatis 只支持以下几种返回类型:
- void
- int 或 Integer
- long 或 Long
- boolean 或 Boolean
- Map
- List 或 Collection
因此,必须将 `updateByCode` 方法的返回类型修改为上述类型之一。如果您需要返回更新后的订单信息,可以在更新操作之后,通过订单编号再次查询订单信息并返回。
例如,将 `updateByCode` 方法的返回类型修改为 `int`,并在更新操作之后查询订单信息并返回的代码实现如下:
```java
public int updateByCode(OrderInfo orderInfo) {
int rows = sqlSessionTemplate.update("com.situ.mallsdauweb.mapper.OrderInfoMapper.updateByCode", orderInfo);
if (rows > 0) {
return sqlSessionTemplate.selectOne("com.situ.mallsdauweb.mapper.OrderInfoMapper.getByCode", orderInfo.getCode());
} else {
return 0;
}
}
```
在这个代码中,我们将 `updateByCode` 的返回类型修改为 `int`,表示更新操作影响的行数。然后,在更新操作之后,我们通过订单编号再次查询订单信息,并返回查询结果。如果更新操作失败,则返回 0。