标签: spring-data-couchbase

Spring Data Couchbase:自动生成 ID

我正在设置一个带有@Id注释的文档,在我的测试中我得到了一个,MappingException因为在创建新文档时没有设置 Id。spring-data + couchbase 无法自动为新文档分配ID?

spring-data-couchbase

5
推荐指数
1
解决办法
3620
查看次数

如何在Spring Data Couchbase中设置Couchbase操作超时?

我有一个简单的spring项目,尝试使用spring-data-couchbase从ouchbase检索文档。我已经通过扩展AbstractCouchbaseConfiguration配置了配置。一切正常。

由于我将沙发床用作缓存,因此现在需要将操作超时设置为较低的值。任何人都可以阐明该怎么做?

couchbase spring-data spring-data-couchbase

4
推荐指数
2
解决办法
2873
查看次数

如何使用 spring-data-couchbase 为特定的 Couchbase 文档设置 TTL?

如何使用 spring-data-couchbase 为特定的 couchbase 文档设置 TTL(生存时间)?我知道有一种方法可以使用 Document 表示法设置到期时间,如下所示 @Document(expiry = 10)

http://docs.spring.io/spring-data/couchbase/docs/1.1.1.RELEASE/reference/html/couchbase.entity.html

它将为通过 Entity 类保存的所有文档设置 TTL。

但似乎有办法为特定文档设置过期(TTL)时间“获取并触摸:获取指定文档并更新文档过期时间”。在http://docs.couchbase.com/developer/dev-guide-3.0/read-write.html 中提到

如何通过 spring-data-couchbase 实现上述功能即使我可以使用 Java SDK 实现该功能,也可以。

任何帮助......

java content-expiration ttl couchbase spring-data-couchbase

4
推荐指数
1
解决办法
3276
查看次数

如何在不具有_class属性的情况下将Spring数据与Couchbase一起使用

有没有一种简单的方法可以将spring数据更新到没有_class属性的文档中?在沙发上,我的sampledata水桶里有这样的东西:

{
  "username" : "alice", 
  "created" : 1473292800000,
  "data" : { "a": 1, "b" : "2"},
  "type" : "mydata"
}
Run Code Online (Sandbox Code Playgroud)

现在,是否有任何方法可以定义从此文档结构到Java对象的映射(请注意,_class缺少属性并且无法添加属性),反之亦然,这样我就可以从Spring Couchbase数据中获取所有(或大多数)自动魔术功能?

诸如此类:如果type字段的值为“ mydata”,请使用类MyData.java。因此,当执行查找而不是自动添加AND _class = "mydata"到生成的查询add时AND type = "mydata"

java couchbase spring-data spring-data-couchbase

4
推荐指数
2
解决办法
1625
查看次数

spring-data-couchbase 为不存在的文档抛出 DocumentDoesNotExistException

我使用spring-data-couchbase 2.1.2spring-boot 1.4.0.RC1couchbase-spring-cache

当缓存被禁用时它工作正常,因为它返回 NULL 对象当缓存被启用并尝试在存储桶中查找不存在的文档时,它会引发异常:

com.couchbase.client.java.error.DocumentDoesNotExistException: null
    at com.couchbase.client.java.CouchbaseAsyncBucket$22.call(CouchbaseAsyncBucket.java:684) ~[java-client-2.2.8.jar:na]
    at com.couchbase.client.java.CouchbaseAsyncBucket$22.call(CouchbaseAsyncBucket.java:671) ~[java-client-2.2.8.jar:na]
    at rx.internal.operators.OperatorMap$1.onNext(OperatorMap.java:54) ~[rxjava-1.0.17.jar:1.0.17]
    at rx.observers.Subscribers$5.onNext(Subscribers.java:234) ~[rxjava-1.0.17.jar:1.0.17]
    at rx.subjects.SubjectSubscriptionManager$SubjectObserver.onNext(SubjectSubscriptionManager.java:223) ~[rxjava-1.0.17.jar:1.0.17]
    at rx.subjects.AsyncSubject.onCompleted(AsyncSubject.java:101) ~[rxjava-1.0.17.jar:1.0.17]
    at com.couchbase.client.core.endpoint.AbstractGenericHandler.completeResponse(AbstractGenericHandler.java:354) ~[core-io-1.2.9.jar:na]
    at com.couchbase.client.core.endpoint.AbstractGenericHandler.access$000(AbstractGenericHandler.java:72) ~[core-io-1.2.9.jar:na]
    at com.couchbase.client.core.endpoint.AbstractGenericHandler$1.call(AbstractGenericHandler.java:372) ~[core-io-1.2.9.jar:na]
    at rx.internal.schedulers.ScheduledAction.run(ScheduledAction.java:55) ~[rxjava-1.0.17.jar:1.0.17]
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) ~[na:1.7.0_80]
    at java.util.concurrent.FutureTask.run(FutureTask.java:262) ~[na:1.7.0_80]
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:178) ~[na:1.7.0_80]
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:292) ~[na:1.7.0_80]
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) ~[na:1.7.0_80]
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) ~[na:1.7.0_80]
    at java.lang.Thread.run(Thread.java:745) ~[na:1.7.0_80]
Caused by: rx.exceptions.OnErrorThrowable$OnNextValue: OnError while emitting onNext value: com.couchbase.client.core.message.kv.RemoveResponse.class
    at rx.exceptions.OnErrorThrowable.addValueAsLastCause(OnErrorThrowable.java:109) ~[rxjava-1.0.17.jar:1.0.17]
    at rx.exceptions.Exceptions.throwOrReport(Exceptions.java:188) ~[rxjava-1.0.17.jar:1.0.17]
    at …
Run Code Online (Sandbox Code Playgroud)

java spring spring-boot spring-cache spring-data-couchbase

3
推荐指数
1
解决办法
1417
查看次数

Couchbase & Spring 查询错误:“返回原始类型的查询预计将返回 1 个结果,得到 X”

在我们的spring-boot 2.0.4.RELEASE应用程序中,我们使用Couchbase version 5.5.1 build 3511with Spring

我们在 Repository 接口中添加了一个新的删除方法:

public interface CatRepository extends CouchbaseRepository<Cat, String> {

  long deleteAllByName(String name);
Run Code Online (Sandbox Code Playgroud)

调用该方法时,文档从存储桶中删除,但我们收到以下错误:

返回原始类型的查询预计将返回 1 个结果,得到 X

X 值根据删除的项目数而变化。在下面的示例中,删除了 27 个项目。

这是完整的堆栈跟踪:

    Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is org.springframework.data.couchbase.core.CouchbaseQueryExecutionException: Query returning a primitive type are expected to return exactly 1 result, got 27] with root cause

org.springframework.data.couchbase.core.CouchbaseQueryExecutionException: Query returning a primitive type are expected to …
Run Code Online (Sandbox Code Playgroud)

java couchbase spring-boot spring-data-couchbase

3
推荐指数
1
解决办法
1185
查看次数

Couchbase 6.0 + springboot(InvalidPasswordException)

嗨,我是Couchbase的新手,并使用Couchbase 6.0创建了一个Springboot应用程序.

当我安装Couchbase时,它要求我创建用户名和密码,然后我设置username ="admin"和password ="password"然后我创建了"student"存储桶.

我在application.properties文件中完成了所有必需的配置.

spring.couchbase.bootstrap-hosts=127.0.0.1
spring.couchbase.bucket.name=student
spring.couchbase.bucket.password=password
Run Code Online (Sandbox Code Playgroud)

在服务器启动时,我收到以下错误

Caused by: com.couchbase.client.java.error.InvalidPasswordException: null
Run Code Online (Sandbox Code Playgroud)

Couchbase Web控制台,我添加了一个安全选项卡,用户名"admin"(我在Couchbase服务器安装期间创建),并给予完全管理员访问权限 在此输入图像描述

在服务器重新启动时,我遇到了同样的问题

然后我在那里添加了一个用户"学生"(与我的桶名相同)并给予完全管理员访问权限

在此输入图像描述

这次我的服务器成功启动,我没有得到任何异常

所以我在这里有两个问题,

1:我是否需要在安全选项卡中的Couchbase服务器中创建与用户名一样多的用户名?

2:假设我只想使用用户名"admin"(我在Couchbase服务器安装期间创建),我将如何实现这一目标?

有人可以对这种行为有所了解吗?

couchbase spring-boot spring-data-couchbase

3
推荐指数
1
解决办法
613
查看次数

为什么 Java N1QL 中的 ORDER BY 无法按预期工作

当我SELECT * FROM projects ORDER BY createdAt desc在 Couchbase Web UI 中运行此查询时,结果按原样排序,但不是在 Java 中。

Java代码

@Override
    public List<Project> getAllProjects(String requestedOrder, Integer page, Integer pageOffset) {
        String statement = "SELECT projects.* FROM projects ORDER BY $requestedOrder DESC OFFSET $offset LIMIT $pageOffset";
        QueryOptions queryOptions = queryOptions().parameters(
                JsonObject.create().put("offset", (page - 1) * pageOffset)
                        .put("pageOffset", pageOffset)
                        .put("requestedOrder", requestedOrder));
        QueryResult queryResult = couchbaseCluster.query(statement, queryOptions);
        return queryResult.rowsAs(Project.class);
    }
Run Code Online (Sandbox Code Playgroud)

网页界面结果

[
  {
    "projects": {
      "createdAt": 1603804921950,
      "name": "Third Project",
      ...
    }
  },
  {
    "projects": { …
Run Code Online (Sandbox Code Playgroud)

java couchbase spring-boot spring-data-couchbase sql++

3
推荐指数
1
解决办法
140
查看次数

如何通过java API创建Couchbase存储桶?

我正在使用 Spring data couchbase 。

 package com.CouchbaseMine.config;

    import java.io.IOException;
    import java.net.URI;
    import java.util.Arrays;
    import java.util.LinkedList;
    import java.util.List;

    import org.springframework.beans.factory.annotation.Value;
    import org.springframework.boot.CommandLineRunner;
    import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
    import org.springframework.context.annotation.Bean;
    import org.springframework.context.annotation.Configuration;
    import org.springframework.data.couchbase.config.AbstractCouchbaseConfiguration;

    import com.couchbase.client.CouchbaseClient;


    @Configuration
    @EnableAutoConfiguration
    public class CouchbaseMineCouchBaseConfig extends AbstractCouchbaseConfiguration {


        @Value("${couchbase.cluster.bucket}")
        private String bucketName;

        @Value("${couchbase.cluster.password}")
        private String password;

        @Value("${couchbase.cluster.ip}")
        private String ip;


        @Override
        protected String getBucketName() {

            List<URI> uris=new LinkedList<URI>();
            uris.add(URI.create("5x.xx.xxx.xx9"));
            CouchbaseClient client=null;
            try {
                System.err.println("-- > - > i am in ");
                client=new CouchbaseClient(uris,"default","");

            } catch (IOException e) {

                System.err.println("IOException …
Run Code Online (Sandbox Code Playgroud)

java couchbase spring-data-couchbase

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

无法部署 couchbase 事件功能

我在存储桶学生记录中有一个文档“学生”,其中记录了 id。

{
  "id":"101",
  "fname": "abc",
  "lname": "xyz",
  "rank": "1",
  "scholarShip": "",
  "grade": ""
}
Run Code Online (Sandbox Code Playgroud)

我的工作是找到所有排名为 1 的学生,然后在相应的文档中更新“奖学金”和“成绩”。

我在 Couchbase 中创建了一个事件函数,如下所示

function OnUpdate(doc, meta) {
    log('docId', meta.id);
       try {
        var rankValue = SELECT rank FROM `student-records` USE KEYS ["id"];
        for (var rv of rankValue) {
            if (rv==1) {  
               UPDATE `student-records` USE KEYS ["id"] set scholarShip="100%", grade="A";
        }
     }
    } catch(e) { log(e); } 
}
Run Code Online (Sandbox Code Playgroud)

在部署这个时,我收到一个错误:

部署失败:语法错误 (7, 16) - 无法在存储桶“student-records”上执行 DML 查询

在创建函数时,我已经声明:

源存储桶 => 学生记录

元数据桶=>学生记录元数据

couchbase spring-data-couchbase sql++

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