【问题标题】:Can we Convert N1QL to shEL query for Spring use我们可以将 N1QL 转换为 shEL 查询以供 Spring 使用吗
【发布时间】:2019-03-11 05:14:57
【问题描述】:

我正在研究spring和couchbase,现在想在我的spring API的帮助下将数据上传到couchbase,但我知道spring不支持N1QL,所以有没有其他方法可以实现这一点或shEL查询

insert into bucket1(key,value)
values("Aman--12/04/1995",
{
  "English":[{ "midterm": 34, "endterm": 67 }],
  "Maths":[{ "midterm": 20, "endterm": 40 }],
  "Computer":[{ "midterm": 48, "endterm": 90 }]
})

UPDATE bucketName USE KEYS id 
SET arrayname = ARRAY_PUT(IFNULL(Arrayname[]),{"Sports": "89"})

【问题讨论】:

    标签: spring-data-jpa couchbase spring-data-couchbase


    【解决方案1】:

    如果你不能通过 spEL 做某事,你总是可以使用纯 n1ql:

        @Override
    public void updateAreaName(String areaName, String areaId) {
    
        String queryString = "UPDATE "+getBucketName()+" set areaName = '"+areaName+"' WHERE "+getClassFilter()+" " +
                " and areaId = '"+areaId+"' RETURNING meta().id";
    
        N1qlParams params = N1qlParams.build().consistency(ScanConsistency.REQUEST_PLUS).adhoc(true);
        ParameterizedN1qlQuery query = N1qlQuery.parameterized(queryString, JsonObject.create(), params);
        resourceRepository.getCouchbaseOperations().getCouchbaseBucket().query(query);
    
    }
    
    private String getBucketName() {
        return resourceRepository.getCouchbaseOperations().getCouchbaseBucket().bucketManager().info().name();
    }
    
    private String getClassFilter(){
        return "_class = '" + QResource.class.getName() + "' ";
    }
    

    【讨论】:

      猜你喜欢
      • 2011-06-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-29
      • 2021-05-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多