休眠一对一或组件?

时间:2009-05-27 13:20:21

标签: java hibernate

我想知道如何编写模型,表

的hbm.xml
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?

我正在使用hibernate 3.x。

4 个答案:

答案 0 :(得分:1)

给定的情况是多对一的情况,因为可以将1种类型分配给多家公司

答案 1 :(得分:1)

您可以拥有多家同类型的公司吗? 你真的不想要多对一的关系吗?

这样的事情(改编自here的Hibernate文档):

<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>

答案 2 :(得分: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

答案 3 :(得分:0)

这并不明显,但它直接用many-to-one映射。

<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>