java - 从现有数据库生成 JDO 对象

标签 java database orm jdo datanucleus

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

最佳答案

JDO 对象不是数据库行的简单包装器(尽管如果您愿意,您可以将 JDO 对象实现为数据库行的简单包装器)。因此,大多数自动化工具仅通过查看数据库将不知道如何呈现对象。

例如,一个对象如下:

public class Person {

   private List<PhoneNumber> phoneNumbers;

   ...

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

}

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

其他实现可能看起来像

public class PhoneNumber {

   public Person getPerson() {
     ...
   }
}

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

更不用说 JDO 并不是为类生成而设计的,事实上,它旨在让您手写的类在没有生成的情况下持久化,因为当时的类生成技术留下了很多可见的缺陷(不受欢迎的命名模式,暴露了冲突的接口(interface)和方法等)。

关于java - 从现有数据库生成 JDO 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7270943/

相关文章:

java - 正则表达式;反向引用字符集中不匹配的字符

java - 这个资源是什么?为什么 Android 找不到它?

php - 拉拉维尔 : Function Always Insert One Number To DB In LOOP

java - 使用 java 反射映射包含其他对象的对象

Java:整数除法舍入

java - 使用 COM4J 连接到 Quality Center v11

mysql - 我怎样才能用2个表进行这个MYSQL查询

mysql - 从联合手工制作的网站和 WordPress 迁移到仅 WordPress

database - 如果我找不到表的候选键(规范化)怎么办?

java - Hibernate,自动持久化依赖对象