使用hibernate逆向工程生成POJO - 如何创建包含其他对象的POJO?

时间:2013-07-18 09:47:03

标签: java mysql hibernate

我正在使用hibernate逆向工程从MySQL数据库生成我的Java类。 我正在使用带有Hibernate Tools的Eclipse Juno 一切都很顺利,但我想更进一步,我被困住了。

假设逆向工程生成了一个类Calls.java和一个类Users.java

/**
 * Calls generated by hbm2java
 */
@Entity
@Table(name = "calls", catalog = "myDB")
public class Calls implements java.io.Serializable {

    private String id;
    private String name;
    private Date dateEntered;
    private String modifiedUserId;
    private String assignedUserId;
...
}

/**
 * Users generated by hbm2java
 */
@Entity
@Table(name = "users", catalog = "myDB")
public class Users implements java.io.Serializable {

    private String id;
    private String userName;
...
}

来自modifiedUserId的属性assignedUserIdCalls实际上是来自id实例的Users(在数据库中它们是外键)。

当我只设置一个外键(假设为assignedUserId)时,我得到了Calls.java的以下定义:

/**
 * Calls generated by hbm2java
 */
@Entity
@Table(name = "calls", catalog = "myDB")
public class Calls implements java.io.Serializable {

    private String id;
    private String name;
    private Date dateEntered;
    private String modifiedUserId;
    private Users users;
...
}

如您所见,我遗漏了assignedUserId的名称 但是,如果我定义2个外键(对于assignedUserIdmodifiedUserId),则属于Users类型的属性将是表中定义的第一个外键(在我的例子中,{{1} })。

modifiedUserId

我想在生成的课程/** * Calls generated by hbm2java */ @Entity @Table(name = "calls", catalog = "myDB") public class Calls implements java.io.Serializable { private String id; private String name; private Date dateEntered; private Users users; private String assignedUserId; ... } 中获得的内容是Calls.javamodifiedUserId属于assignedUserId类型而不是Users }:

String

有人会对如何做到这一点有任何提示吗? 我一直在检查很多关于如何从DB生成POJO的教程以及逆向工程的jboss文档;但我找不到如何在生成的POJO类中包含对象的线索。

非常感谢您的帮助! 亲切的问候,
BS_C3

0 个答案:

没有答案