在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查询将如何工作?
谢谢您的建议。
答案 0 :(得分:3)
是的,您可以在客户端更新类定义后透明地放置和获取对象。唯一的要求是不要在服务器节点的本地类路径上部署此类。
但是,SQL不会自动进行选择,并且在这种情况下不会处理注释。要在运行时更改SQL模式,您需要使用DDL命令(ALTER TABLE,CREATE IMDEX等)。此处有更多详细信息:actual code