我在 spring boot 应用程序中使用 spring社交身份验证。要保留社交用户详细信息,我尝试将 mysql 与JdbcUsersConnectionRepository
一起使用。
我需要更改默认设置为prefix + UserConnect
的表名。表名和所有列名都在camel命名约定中。但在我的应用程序中,数据库列采用下划线命名约定。
当我检查JdbcUsersConnectionRepository
的源代码时,它的硬编码如下所示
jdbcTemplate.queryForList("select userId from " + tablePrefix + "UserConnection where providerId = ? and provide....
我知道我可以重写UsersConnectionRepository
实现并执行此操作。这实际上我现在在做什么。
public class SecUsersConnectionRepository implements UsersConnectionRepository {
private UserRepository userRepository;
private UserConnectionRepository userConnectionRepository;
private ConnectionFactoryLocator connectionFactoryLocator;
.....
.....
但是这样我必须再次在JdbcUsersConnectionRepository
重写相同的逻辑。这完全没有效率。那么实现这一目标的最佳做法是什么?
我希望我不是唯一一个面对春季社交问题的人。请分享您对如何解决此类情况的了解。
答案 0 :(得分:2)
This is not currently possible I'm afraid because, as you rightly pointed out, it's hardcoded in Spring code.
Check the official response Spring forum
If you don't want to replicate code, you must stick to spring's default table name. This is what I did in my project.
Cheers.