【发布时间】:2011-09-01 13:21:28
【问题描述】:
是否有从现有数据库生成 JDO 对象的工具?我更喜欢一个看起来很棒的 Eclipse 插件,我可以用它来生成和维护对象,但它似乎目前不存在。还有其他生成数据库对象的简单工具吗?
【问题讨论】:
标签: java database orm jdo datanucleus
是否有从现有数据库生成 JDO 对象的工具?我更喜欢一个看起来很棒的 Eclipse 插件,我可以用它来生成和维护对象,但它似乎目前不存在。还有其他生成数据库对象的简单工具吗?
【问题讨论】:
标签: java database orm jdo datanucleus
JDO 对象不是数据库行的简单包装器(尽管如果您愿意,您可以将 JDO 对象实现为数据库行的简单包装器)。因此,大多数自动化工具仅通过查看数据库不会知道对象将如何呈现。
例如,像这样的对象:
public class Person {
private List<PhoneNumber> phoneNumbers;
...
public List<PhoneNumber> getPhoneNumbers() {
...
}
}
可能让 JDO 预取所有电话号码以直接包含到对象中。在关系数据库中,这可能通过在构造 Person 对象时将 PhoneNumber 数据库表与 Person 数据库表连接来完成。
其他实现可能看起来像
public class PhoneNumber {
public Person getPerson() {
...
}
}
并强制用户在单独的数据库请求中获取某人的电话号码。通用工具无法预测您希望使用哪种方式。有两种选择(如此处所示)很容易说“使其可配置!”但是,在组合添加八个或更多独立选项后,不清楚配置类生成是否会更容易(与直接编写类相反)。
更不用说 JDO 并不是为类生成而设计的,事实上,它旨在让你的手写类在没有生成的情况下持久存在,因为当时的类生成技术留下了很多可见的垃圾(不受欢迎的命名模式,暴露出冲突的接口和方法等)。
【讨论】: