spring-data-couchbase存储库中的文档的关键前缀

时间:2015-01-09 14:52:35

标签: spring-data-couchbase

在couchbase中存储文档时,我通常使用前缀模式。例如,用户文档可能有一个像" user :: myusername"并且订单文档可能具有" order :: 1"的密钥。

我对spring数据不熟悉,并且没有办法轻松地使用这些前缀。我可以在我的对象中指定一个字段,如:

public class UserLogin {
    public static final String dbPrefix = "user_login::";
    @Id
    private String id;
    private String username;


.
.
.
    public void setUsername(String username) {
        this.username = username;
        this.id = dbPrefix + this.username;
    }
}

并拥有一个Crud存储库

public interface UserLoginRepo extends CrudRepository<UserLogin, String> {

}

这是一个好的工作,因为我可以:

...

userLoginRepo.save(login)

UserLogin login = userLoginRepo.findOne(UserLogin.dbPrefix + "someuser");

...

如果有某种方法让存储库自动使用幕后的前缀,那将是非常好的。

1 个答案:

答案 0 :(得分:0)

不确定你是否在这里提问。 Spring-data没有任何内置机制来执行您想要的操作。如果你使用带有couchbase的Spring-cache,这是可能的,因为你可以使用这样的命名模式来注释你的缓存方法,例如,在spring cache中你可以在持久化方法上做这样的事情:

@Cacheable(value = "myCache", key = "'user_login::'+#id")
public UserLogin getUserLogin()

显然,这是Spring缓存而不是spring数据,但是在同一个库中都支持它们。