<hibernate-mapping>
    <class name="org.eimhe.User" table="user">
        <id name="userid" type="java.lang.Integer">
            <column name="userid" />
            <generator class="native" />
        </id>
        <property name="username" type="java.lang.String">
            <column name="username" length="20" />
        </property>
        <one-to-one name="card" class="org.eimhe.Card" cascade="all"></one-to-one>
    </class>
</hibernate-mapping>

解决方案 »

  1.   

    <hibernate-mapping>
        <class name="org.eimhe.Card" table="card">
            <id name="cardid" type="java.lang.Integer">
                <column name="cardid" />
                <generator class="foreign" >
                 <param name="property">user</param>
                </generator>
            </id>
            <property name="cardnum" type="java.lang.Integer">
                <column name="cardnum" />
            </property>
            <one-to-one name="user" class="org.eimhe.User"></one-to-one>
        </class>
    </hibernate-mapping>
      

  2.   

    这个映射不是一对一的,因为一个product可能出现在多个Ordor中。
    在Ordor中放入Product的id即可
      

  3.   

    根据你的SQL语句生成表后,在Eclipse中用hibernate插件可以自动生成map文件如下:
    <?xml version="1.0"?>
    <!DOCTYPE hibernate-mapping PUBLIC
    "-//Hibernate/Hibernate Mapping DTD//EN"
    "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd" ><hibernate-mapping package="com.nec.necas.istorage.database.S2900">
    <class
    name="Orders"
    table="orders"
    >
    <meta attribute="sync-DAO">false</meta>
    <id
    name="id"
    type="integer"
    column="id"
    >
    <generator class="sequence"/>
    </id> <property
    name="customer"
    column="customer"
    type="string"
    not-null="false"
    length="11"
    />
    <property
    name="productId"
    column="productId"
    type="java.lang.Long"
    not-null="false"
    length="19"
    />
    </class>
    </hibernate-mapping>