私はPeople用のテーブルと、Company用のテーブルとPhones用のテーブルを持つアドレス帳アプリケーションを作成しようとしています。 Phonesテーブルには、どこから来たのかを示すフィールドを持つPeopleおよびCompaniesのデータが格納されます。私は非常に簡単に人と、対応する携帯電話を取得することができ、プレーンSQLで2つの列にhibernateコレクションを作成します。
public class Person {
private Integer id;
private String firstName;
private String lastName;
private Collection<Phone> phones;
// ...
}
public class Company {
private Integer id;
private String name;
private Collection<Phone> phones;
// ...
}
public class Phone {
private Integer id;
private String number;
// ...
}
:私は非常に単純な表現であり、それに対応するJavaクラスを作成している
CREATE TABLE `Person` {
`id` int(11) NOT NULL auto_increment,
`firstName` varchar(80) NOT NULL,
`lastName` varchar(80) NOT NULL
}
CREATE TABLE `Company` (
`id` int(11) NOT NULL auto_increment,
`name` varchar(80) NOT NULL
}
CREATE TABLE `ContactPhone` (
`id` int(11) NOT NULL auto_increment,
`contactType` char(1) NOT NULL, -- either 'P' or 'C'
`contactId` int(11) NOT NULL, -- the id of the Person or Company
`number` varchar(40) NOT NULL
}
:のは、これらは、単純なテーブルがあると仮定しましょう。私はPersonとPhoneの間、CompanyとPhoneの間のマッピングをプレーンな休止状態(注釈なし)で作成する必要がありますが、動作させることはできません。単方向または双方向でなければならないかどうかは確かではありません。私はドキュメントを探しましたが、助けになるものは何も見つかりませんでした。誰でも?
会社と電話の関係は何ですか? – Cherian
会社は単方向の方法で電話機のコレクションを持つことができます。電話から企業への「後方」の接続はありません。 – rmarimon