Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/372.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从现有数据库生成JDO对象_Java_Database_Orm_Jdo_Datanucleus - Fatal编程技术网

Java 从现有数据库生成JDO对象

Java 从现有数据库生成JDO对象,java,database,orm,jdo,datanucleus,Java,Database,Orm,Jdo,Datanucleus,有没有工具可以从现有数据库生成JDO对象?我更喜欢一个看起来很棒的Eclipse插件,我可以用它来生成和维护这个对象,但这似乎是目前不存在的。是否有其他简单的工具来生成数据库对象 JDO对象不是围绕数据库行的简单包装器(尽管您可以根据需要将JDO对象实现为围绕数据库行的简单包装器)。因此,大多数自动化工具仅通过查看数据库不知道对象将如何显示 例如,以下对象: public class Person { private List<PhoneNumber> phoneNumber

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

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

例如,以下对象:

public class Person {

   private List<PhoneNumber> phoneNumbers;

   ...

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

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


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

当表格人物与电话号码有N关系时,工具应该能够注意到这一点,对吗?@Roel Veldhuizen,是的,理论工具能够注意到数据库中的1..N关系;但是,它无法正确猜测程序如何最好地访问这些记录。例如,在拔出联系人号码时最好包含联系人号码的呼叫历史记录,或者最好独立于联系人号码拔出,或者在探索历史记录时懒洋洋地拔出历史记录。知道程序需要信息的正确方式不可能仅从SQL表推断。
public class PhoneNumber {

   public Person getPerson() {
     ...
   }
}