java - Apache Ignite 持久存储类版本的推荐方式

标签 java database ignite persistent

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

如果我有以下包含大量数据的类(class):

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/

相关文章:

java - 如何使用 Hibernate 将枚举映射到单独的表?

java - Apache 点燃: choose server node client node will connect to

java - 在 onTouchEvent 中编辑 ArrayList

java - 用Java解压缩内存中的ZIP文件

asp.net-mvc - ASP.NET MVC : HOWTO: Update database after editing multiselectlist (listbox)

python - 在 django 中管理 redis 连接的正确方法

java - 点燃堆不释放,这是内存泄漏吗?

java - Ignite AtomicSequence - 重置sequenceName值

java - 无法从另一个java类调用函数

c# - 单用户数据库选项