我正在使用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
的属性assignedUserId
和Calls
实际上是来自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个外键(对于assignedUserId
和modifiedUserId
),则属于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.java
和modifiedUserId
属于assignedUserId
类型而不是Users
}:
String
有人会对如何做到这一点有任何提示吗? 我一直在检查很多关于如何从DB生成POJO的教程以及逆向工程的jboss文档;但我找不到如何在生成的POJO类中包含对象的线索。
非常感谢您的帮助!
亲切的问候,
BS_C3