在通过jdbc之后,如何使用JavaAPI从缓存中读取数据?

时间:2018-02-14 20:19:30

标签: sql ignite

例如,我使用下一个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表之外的其他字段会怎么样?

2 个答案:

答案 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