在Apache Ignite中使用SqlFieldQuery查询集合对象



样本类

public class PersonImpl{
private String firstName;
private String lastName
private HashMap<Integer,String> attributes;
}

在使用sqlFields查询时,它可以使用firstName和lastName,但不能使用sqlFieldsQuery 提取所有属性

例如,从PersonImpl中选择firstName会给出结果,但从PersonImpl中选择属性不会获取结果,并给出错误Failed to deserialize Object

是否无法使用ApacheIgnite获取集合。

您能展示更多的代码吗?这应该行得通。我试过这个,它起到了作用,例如:

var cacheConfiguration = new CacheConfiguration<Long,PersonImpl>()
.setName("PERSON")
.setIndexedTypes(Long.class, PersonImpl.class);
var cache = ignite.<Long,PersonImpl>getOrCreateCache(cacheConfiguration);
var attr = new HashMap<Integer,String>();
attr.put(1,"London");
attr.put(2,"United Kingdom");
cache.put(1L, new PersonImpl("John", "Smith", attr));
try (var cursor = cache.query(new SqlFieldsQuery("select attributes from PersonImpl where _key = ?").setArgs(1L))) {
for (var e : cursor) {
System.out.println(e);
}
}

相关内容

  • 没有找到相关文章

最新更新