に参加し、私は、データベース内の6つのテーブルを持っている:CarMaster、アウディ、トヨタ、タタ、ヒュンダイ、フォード、マッピングが休止状態
マッピングテーブルは、2つの列があります。マッピングテーブルにmapId、tableNameの
エントリは次のようになります"1、Audi"、 "2、Toyota"のように "5、Ford"
最初の5つのテーブルのプライマリキーはcarIdです。
また、CarMasterにはmapId列があり、これをマッピングテーブルと結合するとテーブル名が与えられます。これにより、carIdキーを対応するテーブルと結合して、車に関する詳細を取得することができます。
carIdはmapId 3で10です。mapId 3はTataを意味します。 carId 10の詳細はTataテーブルに表示されますので、CarMasterとTataが参加して詳細を取得します。
このシナリオをHibernateでどのようにマップするのですか? 6つのテーブル間の関連は何ですか?
私は以下のPOJOをリストしていますので、多くの入力をしなくてもすぐに関連付けのアノテーションを手伝うことができます。
class CarMaster implements Serializable
{
@Id
@Column(name = "car_id")
private String carId;
@Column(name = "map_id")
private String mapId;
//other columns
}
class Audi implements Serializable
{
@Id
@Column(name = "car_id")
private String carId;
//other columns
}
class Toyota implements Serializable
{
@Id
@Column(name = "car_id")
private String carId;
//other columns
}
class Tata implements Serializable
{
@Id
@Column(name = "car_id")
private String carId;
//other columns
}
class Hyundai implements Serializable
{
@Id
@Column(name = "car_id")
private String carId;
//other columns
}
class Ford implements Serializable
{
@Id
@Column(name = "car_id")
private String carId;
//other columns
}
class Mapping implements Serializable
{
@Id
@Column(name = "map_id")
private String mapId;
@Column(name = "table_name")
private String tableName;
}
お読みください!
例を作るためだけのものなのか分かりませんが、これらのテーブル名は非常に悪いデザインを指しています... – SJuan76
@ SJuan76:はい、私は知っています..しかし残念ながら、私はそれは..私はこのデザインで作業する必要があります.. – Nik