我们可以将N1QL转换为shEL查询以供Spring使用 [英] Can we Convert N1QL to shEL query for Spring use

查看:111
本文介绍了我们可以将N1QL转换为shEL查询以供Spring使用的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在使用spring和bedbase,现在想在我的spring API的帮助下将数据上传到bedbase,但是知道spring不支持N1QL,所以还有其他方法可以实现该功能或shEL查询

I am working on spring and couchbase and now want to upload data to couchbase with the help of my spring API but got to know that spring does not support N1QL, So is there any other way to achieve that or a shEL query

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"})

推荐答案

如果您无法通过spEL进行操作,则可以始终使用纯n1ql:

If you can't do something via spEL you can always use pure n1ql for it:

    @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() + "' ";
}

这篇关于我们可以将N1QL转换为shEL查询以供Spring使用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆