2015-05-09 63 views
0

我使用春季社交认证春季开机申请。要坚持社交用户详细信息,我正在尝试使用mysqlJdbcUsersConnectionRepository如何更改Spring Social JdbcUsersConnectionRepository表名和列名?

我需要更改默认设置为prefix + UserConnect的表名。表名和所有列名均采用骆驼命名约定。但在我的应用程序中,数据库列使用下划线命名约定。

当我检查的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重写相同的逻辑。根本没有生产力。那么实现这一目标的最佳做法是什么?

我希望我不是唯一一个面对春季社交问题的人。请分享你如何解决这种情况的知识。

回答

2

这当前不可能我很害怕,因为正如你正确地指出的那样,它在Spring代码中是硬编码的。

检查的官方回应 Spring forum

如果你不想复制的代码,你必须坚持到春天的默认表名。这是我在我的项目中所做的。

干杯。

+0

你说得对。很遗憾,为什么春天不重写逻辑就不会使这些值变化。我为此重写了自己的课程。 –

+0

是的,这是令人发狂的。他们为什么会违背自己的标准表命名约定,并用愚蠢的camel-case db表命名将每个人都搞砸了。 #失败 – Trevor