Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用Couchbase和Spring Boot的自定义N1QL查询_Java_Spring_Spring Boot_Couchbase - Fatal编程技术网

Java 使用Couchbase和Spring Boot的自定义N1QL查询

Java 使用Couchbase和Spring Boot的自定义N1QL查询,java,spring,spring-boot,couchbase,Java,Spring,Spring Boot,Couchbase,我编写了一个自定义存储库,使用couchbase的N1QL获得结果。 这是我的密码 @Override public List<Person> findAll(int age) { String statement = "select * from bucket_name where _class = 'com.mine.test.model.Person' and age>"+age; SimpleN1qlQuery query

我编写了一个自定义存储库,使用couchbase的N1QL获得结果。 这是我的密码

    @Override
    public List<Person> findAll(int age) {
        String statement = "select * from bucket_name where _class = 'com.mine.test.model.Person' and age>"+age;
        SimpleN1qlQuery query = N1qlQuery.simple(statement);
        List<Person> list=couchbaseTemplate.findByN1QL(query, Person.class);
        return list;
    }
@覆盖
公共列表findAll(国际年龄){
String statement=“select*from bucket\u name,其中_class='com.mine.test.model.Person'和age>”+age;
SimpleN1qlQuery query=N1qlQuery.simple(语句);
List List=couchbaseTemplate.findByN1QL(查询,Person.class);
退货清单;
}
但我的错误率越来越低

无法为N1QL到实体的映射检索足够的元数据,您是否选择了\u ID和\u CAS?

有什么帮助吗?

//下面是带有导入的代码段
// below code snippet with imports
import com.couchbase.client.java.Bucket;
import com.couchbase.client.java.Cluster;
import com.couchbase.client.java.CouchbaseCluster;
import com.couchbase.client.java.document.json.JsonObject;
import com.couchbase.client.java.query.N1qlQuery;
import com.couchbase.client.java.query.N1qlQueryResult;
import com.demo.model.User;
import com.google.gson.Gson;

import java.util.ArrayList;
import java.util.List;

Cluster cluster = CouchbaseCluster.create("127.0.0.1");
        cluster.authenticate("testuser","123456");
        Bucket bucket = cluster.openBucket("jsabucket");
        bucket.bucketManager().createN1qlPrimaryIndex(true, false);

// Inserting records
JsonObject authur = JsonObject.create()
            .put("name","Jake")
            .put("email","test@test.com")
            .put("interets", JsonArray.from("Reading","Swimming"));

    bucket.upsert(JsonDocument.create("u:king_arthur",authur))

//    fetching records
List list = new ArrayList<>();
        N1qlQueryResult result
                = bucket.query(N1qlQuery.simple("SELECT * FROM jsabucket"));
        result.forEach(row -> {
            JsonObject jsonObject = row.value();
            Object doc = jsonObject.get("jsabucket");
            Gson gson = new Gson();
            User user = gson.fromJson(doc.toString(), User.class);
            System.out.println(user);
        });
// User model class
import java.util.List;

public class User {
    private String name;
    private String email;
    private List<String> interests;

    public User() {
    }

    public User(String name, String email, List<String> interests) {
        this.name = name;
        this.email = email;
        this.interests = interests;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public List<String> getInterests() {
        return interests;
    }

    public void setInterests(List<String> interests) {
        this.interests = interests;
    }
}`enter code here`
导入com.couchbase.client.java.Bucket; 导入com.couchbase.client.java.Cluster; 导入com.couchbase.client.java.couchbase集群; 导入com.couchbase.client.java.document.json.JsonObject; 导入com.couchbase.client.java.query.N1qlQuery; 导入com.couchbase.client.java.query.N1qlQueryResult; 导入com.demo.model.User; 导入com.google.gson.gson; 导入java.util.ArrayList; 导入java.util.List; Cluster Cluster=CouchbaseCluster.create(“127.0.0.1”); cluster.authenticate(“testuser”,“123456”); Bucket=cluster.openBucket(“jsabucket”); bucket.bucketManager().createN1qlPrimaryIndex(真、假); //插入记录 JsonObject authur=JsonObject.create() .put(“姓名”、“杰克”) .put(“电子邮件”)test@test.com") .put(“interets”,JsonArray.from(“Reading”,“sweening”); bucket.upsert(JsonDocument.create(“u:king_亚瑟王,authur)) //获取记录 列表=新的ArrayList(); N1qlQueryResult结果 =bucket.query(N1qlQuery.simple(“从jsabucket中选择*)); 结果。forEach(行->{ JsonObject JsonObject=row.value(); objectdoc=jsonObject.get(“jsabucket”); Gson Gson=新的Gson(); User User=gson.fromJson(doc.toString(),User.class); System.out.println(用户); }); //用户模型类 导入java.util.List; 公共类用户{ 私有字符串名称; 私人字符串电子邮件; 私人上市权益; 公共用户(){ } 公共用户(字符串名称、字符串电子邮件、兴趣列表){ this.name=名称; this.email=电子邮件; 这个。利益=利益; } 公共字符串getName(){ 返回名称; } 公共void集合名(字符串名){ this.name=名称; } 公共字符串getEmail(){ 回复邮件; } 公用电子邮件(字符串电子邮件){ this.email=电子邮件; } 公众利益清单(){ 归还利息; } 公共利益(列出利益){ 这个。利益=利益; } }`在这里输入代码`
我没有通过Java使用N1QL,所以我不能给你一个明确的答案,但是id和cas值可以从meta()函数中获得:
选择bucket\u name.*,meta(bucket\u name)来自可能会有帮助。建议使用什么方法通过java查询数据?