标签: spring-data-couchbase

Couchbase 5桶密码设置

我正在尝试编写样本以学习沙发基础.我正在尝试使用它与spring boot和它的crud存储库.

所以我已经下载了最新的docker镜像,但重点是:我找不到桶的密码.couchbase控制台只允许用户创建,但在春天,没有像用户名/密码那样的用法.它只允许使用与couchbase 5不兼容的bucketName和密码.

我在这里遗漏了什么,或者春天与couchbase 5不兼容?如果spring不兼容,哪个版本的couchbase可以吗?

谢谢

couchbase spring-data spring-boot spring-data-couchbase

2
推荐指数
1
解决办法
2514
查看次数

Spring Data Couchbase索引问题

我正在玩Couchbase和Spring数据Couchbase。为此,我已经安装了带有版本号5.5.1 build 3511并启用了测试桶的ouchbase 。我已经beer-sample用密码创建了用户,beer-sample并向他添加了bucket的所有权限beer-sample

然后,我创建了带有示例配置的示例应用程序。当我启动该应用程序并查询存储桶中的现有啤酒时,出现异常:

com.couchbase.client.java.error.ViewDoesNotExistException: View beer/all does not exist.
    at com.couchbase.client.java.view.ViewQueryResponseMapper$BuildViewResult.call(ViewQueryResponseMapper.java:211)
    at com.couchbase.client.java.view.ViewQueryResponseMapper$BuildViewResult.call(ViewQueryResponseMapper.java:185)
    at rx.internal.operators.OnSubscribeMap$MapSubscriber.onNext(OnSubscribeMap.java:69)
    at rx.internal.operators.OnSubscribeMap$MapSubscriber.onNext(OnSubscribeMap.java:77)
    at rx.internal.producers.SingleProducer.request(SingleProducer.java:65)
    at rx.Subscriber.setProducer(Subscriber.java:211)
    at rx.internal.operators.OnSubscribeMap$MapSubscriber.setProducer(OnSubscribeMap.java:102)
    at rx.internal.operators.OnSubscribeMap$MapSubscriber.setProducer(OnSubscribeMap.java:102)
    at rx.internal.operators.OperatorSingle$ParentSubscriber.onCompleted(OperatorSingle.java:113)
    at rx.internal.operators.OperatorObserveOn$ObserveOnSubscriber.checkTerminated(OperatorObserveOn.java:281)
    at rx.internal.operators.OperatorObserveOn$ObserveOnSubscriber.call(OperatorObserveOn.java:216)
    at rx.internal.schedulers.ScheduledAction.run(ScheduledAction.java:55)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at java.lang.Thread.run(Thread.java:748)
Caused by: rx.exceptions.OnErrorThrowable$OnNextValue: OnError while emitting onNext value: com.couchbase.client.java.document.json.JsonObject.class
    at rx.exceptions.OnErrorThrowable.addValueAsLastCause(OnErrorThrowable.java:118)
    at rx.internal.operators.OnSubscribeMap$MapSubscriber.onNext(OnSubscribeMap.java:73)
    ... 16 more
Run Code Online (Sandbox Code Playgroud)

我猜应该使用我的配置自动创建索引,但是也许我错了。

couchbase spring-boot spring-data-couchbase

2
推荐指数
1
解决办法
778
查看次数

javax验证不验证notNull

我有一个使用Spring Data for Couchbase的springBoot 2.1.9.RELEASE应用程序

我有这个对象

@Data
@AllArgsConstructor
@NoArgsConstructor
public class Hostel<T> {

    @NotNull
    @JsonProperty("_location")
    private T location;

}
Run Code Online (Sandbox Code Playgroud)

还有另外一个

@Document
@Data
@AllArgsConstructor
@NoArgsConstructor
@EqualsAndHashCode(of = { "id" })
@Builder
public class HTMDoc {

    @Id
    private String id;
    @NotNull
    @Field
    private Hostel hostel;

}
Run Code Online (Sandbox Code Playgroud)

在服务上

public HTMDoc create(@Valid HTMDoc doc) {
    return repository.save(doc);
}
Run Code Online (Sandbox Code Playgroud)

在测试中

service.create(new HTMDoc());
Run Code Online (Sandbox Code Playgroud)

但是当我保存时,出现此错误,而不是旅馆字段中的验证NotNull

 org.springframework.data.mapping.MappingException: An ID property is needed, but not found/could not be generated on this entity.
Run Code Online (Sandbox Code Playgroud)

java spring spring-boot spring-data-couchbase

2
推荐指数
1
解决办法
240
查看次数

找不到java.lang.Object的映射元数据 - Couchbase

我在CouchBase存储库中持久化实体并尝试查询它.该实体看起来像这样:

@Document(expiry = 0)
public class GsJsonStore implements Serializable {
    private static final long serialVersionUID = 7133072282172062535L;
    @Id @GeneratedValue(strategy=GenerationType.AUTO)
    private long id;
    @Field
    private Map<String,Object> _object;
    @Field
    private String _subject;
    @Field
    private String _predicate;
    //Getters and Setters 
    }
Run Code Online (Sandbox Code Playgroud)

我在CouchbaseOperations模板上使用N1QL查询来查询实体,如下所示:

String query1 =  "SELECT META(default).id as _ID, META(default).cas as _CAS, default.* FROM default WHERE "+key+"="+"'"+value+"'";

List<GsJsonStore> list = operations.findByN1QL(N1qlQuery.simple(query1), GsJsonStore.class);
Run Code Online (Sandbox Code Playgroud)

我在_object Map中查询KV对.我收到一个错误:No mapping metadata found for java.lang.Object

为什么会这样?另外,我Map<String,Object>在Couchbase中存储json对象,我尝试使用jackson JsonNode类型,但对象也存储了类相关的元数据.是否有更好的数据类型来表示json类型?

编辑

存储在Couchbase中的数据:

{
"_object" : {
"Name" : …
Run Code Online (Sandbox Code Playgroud)

couchbase spring-data-couchbase

0
推荐指数
1
解决办法
2147
查看次数