从现有数据库生成JDO对象

时间:2011-09-01 13:21:28

标签: java database orm jdo datanucleus

是否有从现有数据库生成JDO对象的工具?我更喜欢一个看起来很棒的Eclipse插件,我可以使用它来生成和维护对象,但似乎这个目前还不存在。是否有其他简单的工具来生成数据库对象?

1 个答案:

答案 0 :(得分:1)

JDO对象不是围绕数据库行的简单包装器(尽管您可以将JDO对象实现为数据库行的简单包装器,如果这是您想要的)。因此,大多数自动化工具只会通过查看数据库来了解如何呈现对象。

例如,像:

这样的对象
public class Person {

   private List<PhoneNumber> phoneNumbers;

   ...

   public List<PhoneNumber> getPhoneNumbers() {
     ...
   }

}

可能会让JDO预取所有电话号码以直接包含在对象中。在关系数据库中,这可能是通过在构造Person对象时将PhoneNumber数据库表与Person数据库表连接来完成的。

其他实现可能看起来像

public class PhoneNumber {

   public Person getPerson() {
     ...
   }
}

并强制用户在单独的数据库请求中获取某人的电话号码。通用工具无法预测您希望使用哪种方式。有两个选择(如此处所示),很容易说“让它可配置!”但是,在组合添加八个或更多独立选项后,不清楚配置类生成会更容易(而不是直接编写类)。

更不用说JDO不是为了类生成而设计的,实际上它的目的是让你的手写类持久而不生成因为当时的类生成技术留下了很多可见的错误(不合需要的命名模式) ,暴露冲突的接口和方法等)。