2009-05-27 5 views
0

私はHBMを書くためにどのように、モデルを作成する方法テーブル1対1またはコンポーネントを休止状態にしますか?

Company 
------- 
id(PK) 
name 
address 
typeid(fk) 

Type 
---- 
id(PK) 
type 

class Company(){ 
int id; 
String name; 
String address; 
Type type; 
} 

class Type(){ 
int id; 
String type; 
} 

(GET/setメソッドを持つ)

ためのhbm.xmlを疑問に思って?

私はhibernate 3.xを使用しています。

答えて

1

同じ種類の複数の会社をお持ちいただけますか? 多対1の関係が本当に必要なのですか?この場合

<class name="Company" table="company"> 
    <id name="id" column="id"> 
    ... 
    </id> 
    .... 
    <many-to-one name="type" 
     class="Type" 
     column="typeid" 
     not-null="true"/> 
</class> 

<class name="Type"> 
    <id name="id" column="id"> 
     ... 
    </id> 
</class> 
0
<class name="Company" table="company"> 
<id name="id" column="id"> 
    <generator class="foreign"> 
     <param name="property">type</param> 
    </generator> 
</id> 
... 
<one-to-one name="type" 
    class="Type" 
    constrained="true"/> 
</class> 

詳細here

+0

、同社は別の1対がある可能性があるので、奇妙なタイプからIDを取得します(hereからHibernateのドキュメントから適応)このようなものについてはどのように

またはnullにすることができます。 –

+0

質問が1対1のために尋ねられました。 –

1

与えられた状況は、1種類は、複数の企業に

0

を割り当てることができますので、それは明らかではないが、それはまっすぐ進むmany-to-oneにマッピングされています、多対1の状況です。

<class name="Company" table="company"> 
<id name="id"> 
    <generator class="native"> 
     <param name="sequence">Company_SEQ</param> 
    </generator> 
</id> 
... 
<many-to-one 
    name="type" 
    class="Type" 
    constrained="true"/> 
</class> 
関連する問題