Можем ли мы конвертировать N1QL в запрос shEL для использования в Spring - PullRequest
1 голос
/ 11 марта 2019

Я работаю над spring и couchbase и теперь хочу загрузить данные в couchbase с помощью моего API Spring, но узнал, что 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"})

1 Ответ

1 голос
/ 12 марта 2019

Если вы не можете сделать что-то через 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() + "' ";
}
...