使用存储在objectdb文件中的对象,而不使用它的类定义

时间:2014-09-10 14:58:50

标签: java objectdb

假设我在java中创建了一个名为Point的对象,其中包含2个属性(int x& int y),并且我将一些实例存储在objectdb文件中。我知道如何从该文件中检索所有项目(作为对象),但如果我不再具有Point类的定义,我该如何访问它们的属性?

点定义

Class Point {
    int x;
    int y;
}

然后我创造2点 (0,0) (1,1) 并将它们存储在objectdb文件中(如果需要,我可以提供代码)

我使用此语句检索所有Point实例

     TypedQuery<Object> query = em.createQuery("SELECT o FROM Object o", Object.class);
     List<Object> results = query.getResultList();

据说我只有objectdb文件而不是Point类定义如何获取x和y的值(即使是简单的字符串值)?

提前致谢

1 个答案:

答案 0 :(得分:0)

当缺少类定义时,ObjectDB会根据存储在数据库中的类模式自动生成合成类。因此,示例中的查询返回由ObjectDB生成的合成Point类的实例。

您可以使用Java Reflection API访问您的数据(可能还使用JPA Metamodel API)。