例如,我使用下一个DDL查询创建了表:
CREATE TABLE IF NOT EXISTS Person
(id int PRIMARY KEY, city_id int, name varchar, company varchar, age int)
WITH "template=partitioned, value_type=MyPerson";
现在我要将它从缓存中读取为MyPerson对象。我怎么做?我还需要定义MyPerson类吗?如果它包含一些(或完全)除Person表之外的其他字段会怎么样?
答案 0 :(得分:3)
您可以创建MyPerson
课程,也可以使用withKeepBinary
标记和BinaryObject
API。有关详情,请参阅此处:https://apacheignite.readme.io/docs/binary-marshaller#binaryobject-cache-api
如果您使用后者,您将拥有所有可用字段。如果反序列化为类实例,则当然只有类中可用的字段。其他任何东西都会被忽略。存在于类中但不存在于缓存中的字段将使用默认值(空值和零)进行初始化。
答案 1 :(得分:2)
这很容易做到。浏览这个GitHub项目,该项目展示了如何将SQL和键值API混合在一起。它涵盖了您的场景: https://github.com/dmagda/ignite_world_demo