在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查询将如何工作?
谢谢你的建议。
最佳答案
是的,您可以在更新客户端的类定义后透明地放置和获取对象。唯一的要求是不要在服务器节点的本地类路径上部署这个类。
但是,sql不会自动接受这个问题,在这种情况下,注释也不会被处理。要在运行时更改sql模式,需要使用ddl命令(alter table、create imdex等)。更多详情请点击:https://apacheignite-sql.readme.io/docs/ddl
关于java - Apache Ignite持久存储针对类版本的推荐方法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52044421/