在couchbase中存储文档时,我通常使用前缀模式。例如,一个用户文档可能有一个类似" user ::myusername“的键,而一个订单文档可能有一个" order ::1”键。
我是spring-data的新手,没有看到一种简单的方法可以让它使用这些前缀工作。我可以在对象中指定一个字段,如下所示:
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");
...如果有某种方法可以让存储库在幕后自动使用前缀,那就太好了。
发布于 2015-03-22 12:03:47
不确定您在这里是否在问问题。Spring-data没有任何内置的机制来做你想做的事情。如果您将Spring-cache与couchbase一起使用,这是可能的,因为您可以使用如下命名模式注释您的缓存方法,例如,在spring cache中,您可以对持久性方法执行类似以下操作:
@Cacheable(value = "myCache", key = "'user_login::'+#id")
public UserLogin getUserLogin()显然,这是Spring缓存,而不是spring数据,但是两者都在同一个库中受支持。
https://stackoverflow.com/questions/27863239
复制相似问题