注册报错,原因mysql版本太高,rank需转译,怎么处理。

来源:5-6 处理注册逻辑

我常常因为自己不够沙雕而自卑

2019-02-15

图片描述
注册时报错,我的mysql是8.0.13版本,rank字段需转译,我该怎么JdbcConnectionRepository.class addConnection替换掉,自己重写。

写回答

4回答

Peter陳

2019-04-05

  1. 复制一份spring-social-core-1.1.4中org.springframework.social.connect.jdbc下的文件到imooc-security-core下中。修改JdbcUserConnectionRespository.java/JdbcUserConnectionRespository.sql中的rank为rankNew(也可以是其他名字)。文件名可以重命名加上Imooc前缀

  2. 修改com.imooc.security.core.social.SocialConfig中getUsersConnectionRepository

@Override

public UsersConnectionRepository getUsersConnectionRepository(ConnectionFactoryLocator connectionFactoryLocator) {

//ImoocJdbcUsersConnectionRepository是我把第一步中的Repository重命名了

ImoocJdbcUsersConnectionRepository repository = new ImoocJdbcUsersConnectionRepository(dataSource, connectionFactoryLocator, Encryptors.noOpText());

repository.setTablePrefix("");//表UserConnection的前缀,这边没有添加前缀

return repository;

}


4
0

JoJo

2019-02-25

把整个类copy出来,改一下就好了,默认classes的加载优先级高于lib

3
0

云晴

2019-08-22

我也遇到了,根据一楼的回答改的,

因为socaiConfig中的getUsersConnectionRepository方法中的JdbcUsersConnectionRepository写到如果userId存在则new JdbcConnectionRepository如下面代码,   但是JdbcConnectionRepository中的代码用的全是rank,所以解决方法把JdbcUsersConnectionRepository和JdbcConnectionRepository全部copy一份在我们的core模块中,然后把JdbcConnectionRepository所有的rank替换为myrank,数据库字段也要改成myrank,

然后JdbcUsersConnectionRepository如下面代码new 本地改rank的JdbcConnectionRepository,最后socaiConfig中的这些代码@Override
public UsersConnectionRepository getUsersConnectionRepository(ConnectionFactoryLocator connectionFactoryLocator) {

   /**
    *  这个改成用我们copy出来的自己项目下的JdbcUsersConnectionRepository 

    */
   JdbcUsersConnectionRepository repository = new JdbcUsersConnectionRepository(dataSource, connectionFactoryLocator, Encryptors.noOpText());
   repository.setTablePrefix("db_");
   return repository;
}


//我是上文中如下面的代码

public ConnectionRepository createConnectionRepository(String userId) {
  if (userId == null) {
     throw new IllegalArgumentException("userId cannot be null");
  }
  return new JdbcConnectionRepository(userId, jdbcTemplate, connectionFactoryLocator, textEncryptor, tablePrefix);
}

0
0

qq_皱眉头_0

2019-07-03

 我也遇到了这个问题

0
0

Spring Security技术栈开发企业级认证与授权

Spring Security技术栈,REST风格开发常见接口,独立开发认证授权模块保证REST服务安全

2662 学习 · 1561 问题

查看课程