Apache Ignite持久存储针对类版本的推荐方法

时间:2018-08-27 17:39:40

标签: java database ignite persistent

在RDBMS系统中,即使表中已经有数据,我也可以添加新列。我不知道在存储类对象时使用Ignite持久存储执行此操作的建议方法是什么?

如果我的以下课程有很多数据:

public class Person implements Serializable
{
  @QuerySqlField
  String firstName;

  @QuerySqlField
  String lastName;
}

然后我可能想向此类添加一个新字段,例如

public class Person implements Serializable
{
  @QuerySqlField
  String firstName;

  @QuerySqlField
  String lastName;

  @QuerySqlField
  Date birthday;
}

我可以放置并获得该类的旧版本和新版本吗?当我从持久性存储中读取类的旧版本时,新字段值会发生什么?

当旧版本的数据中没有列生日时,SQL查询将如何工作?

谢谢您的建议。

1 个答案:

答案 0 :(得分:3)

是的,您可以在客户端更新类定义后透明地放置和获取对象。唯一的要求是不要在服务器节点的本地类路径上部署此类。

但是,

SQL不会自动进行选择,并且在这种情况下不会处理注释。要在运行时更改SQL模式,您需要使用DDL命令(ALTER TABLE,CREATE IMDEX等)。此处有更多详细信息:actual code