休止状態のリバース エンジニアリングを使用して、MySQL データベースから Java クラスを生成しています。Hibernate Tools で Eclipse Juno を使用しています。
すべて順調に進んでいますが、さらに一歩進めたいのですが、行き詰まっています。
リバース エンジニアリングによって classCalls.java
とclass が生成されたとし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
fromCalls
は、実際にはインスタンスid
からのものUsers
です (データベースでは、それらは外部キーです)。
外部キーを 1 つだけ設定すると (たとえば for としましょう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 になるプロパティは、テーブルで定義された最初の外部キーになります (私の場合は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
。
/**
* 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 modifiedUserId;
private Users assignedUserId;
...
}
これを行う方法についてのヒントはありますか?DB から POJO を生成する方法に関する多くのチュートリアルと、リバース エンジニアリングに関する jboss のドキュメントをチェックしてきました。しかし、生成された POJO クラスにオブジェクトを含める方法についての手がかりが見つかりません。
助けてくれてありがとう!
よろしく、
BS_C3