当前使用版本(必填,否则不予处理)
当前版本mp3.3.0
该问题是如何引起的?(确定最新版也有问题再提!!!)
当在MetaObjectHandler实现类里注入同级的服务类时(此被注入的服务类注入了Mapper查询数据库)
重现步骤(如果有就写完整)
@Component
public class MetaObjectHandlerImpl implements MetaObjectHandler {
@Autowired
UserService userService;
@Override
public void insertFill(MetaObject metaObject) {
HttpServletRequest httpServletRequest = RequestUtils.getRequest();
User user = userService.getCurrentUser(httpServletRequest);
this.strictInsertFill(metaObject, "createName", String.class, user.getUserName());
this.strictInsertFill(metaObject, "createDateTime", LocalDateTime.class, DateUtils.getSHANowTime());
this.strictInsertFill(metaObject, "updateName", String.class, user.getUserName());
this.strictInsertFill(metaObject, "updateDateTime", LocalDateTime.class, DateUtils.getSHANowTime());
}
@Override
public void updateFill(MetaObject metaObject) {
HttpServletRequest httpServletRequest = RequestUtils.getRequest();
User user = userService.getCurrentUser(httpServletRequest);
this.strictInsertFill(metaObject, "updateName", String.class, user.getUserName());
this.strictInsertFill(metaObject, "updateDateTime", LocalDateTime.class, DateUtils.getSHANowTime());
}
}
@Service
public class UserServiceImpl implements UserService {
@Autowired
private UserMapper userMapper;
@Override
@DS("***")
public User getUserById(String Id) {
return userMapper.getUserById(Id);
}
@Override
@DS("***")
public User getCurrentUser(HttpServletRequest request){
String userId = getCurrentId(request);
return userMapper.getUserById(userId);
}
@Override
public String getCurrentId(HttpServletRequest request){
//****
}
}
报错信息
┌─────┐ | sqlSessionFactory defined in class path resource [com/baomidou/mybatisplus/autoconfigur/MybatisPlusAutoConfiguration.class] ↑ ↓ | metaObjectHandlerImpl (field) ↑ ↓ | userServiceImpl (field private ) ↑ ↓ | userMapper defined in file [] └─────┘
Comment From: miemieYaho
自己处理