我在 CouchBase 存储库中保留一个实体并尝试查询它。实体如下所示:
@Document(expiry = 0)
public class GsJsonStore implements Serializable {
private static final long serialVersionUID = 7133072282172062535L;
@Id @GeneratedValue(strategy=GenerationType.AUTO)
private long id;
@Field
private Map<String,Object> _object;
@Field
private String _subject;
@Field
private String _predicate;
//Getters and Setters
}
我正在使用 CouchbaseOperations 模板上的 N1QL 查询来查询实体,如下所示:
String query1 = "SELECT META(default).id as _ID, META(default).cas as _CAS, default.* FROM default WHERE "+key+"="+"'"+value+"'";
List<GsJsonStore> list = operations.findByN1QL(N1qlQuery.simple(query1), GsJsonStore.class);
我正在 _object 映射中查询 KV 对。我收到一个错误:No mapping metadata found for java.lang.Object
为什么会这样?另外,我Map<String,Object>
在 Couchbase 中存储了一个 json 对象,我尝试使用 jacksonJsonNode
类型,但该对象还存储了与类相关的元数据。是否有更好的数据类型来表示 json 类型?
编辑
存储在 Couchbase 中的数据:
{
"_object" : {
"Name" : "Kapil",
"Age" : {
"Nested" : 21
}
},
"_subject" : "Subject",
"_predicate" : "Predicate"
}
我正在寻找的关键是 _object.Name 和价值是 'Kapil'