hibernate怎么实现一对多关系时,只插入多方(一方已存在),但是插入后的多方的外键,还是已存在的一方的主键。
各位前辈这个该怎么实现谢谢了!

解决方案 »

  1.   

    多方的映射
    <hibernate-mapping>
        <class name="cn.jbit.houserent.bean.Street" table="street" lazy="false">
            <id name="id" type="java.lang.Integer">
                <column name="id" />
                <generator class="sequence" >
                 <param name="sequence">SEQ_ID</param>
                </generator>
            </id>
            <many-to-one name="district" class="cn.jbit.houserent.bean.District" lazy="false">
                <column name="district_id"  />
            </many-to-one>
            <property name="name" type="java.lang.String">
                <column name="name" length="50" not-null="true" />
            </property>      
        </class>
    </hibernate-mapping>
    一方的映射
    <hibernate-mapping>
        <class name="cn.jbit.houserent.bean.District" table="district" lazy="false">
            <id name="id" type="java.lang.Integer">
                <column name="id" />
                <generator class="sequence" >
                 <param name="sequence">SEQ_ID</param>
                </generator>
            </id>
            <property name="name" type="java.lang.String">
                <column name="name" length="50" not-null="true" />
            </property>
            <!--   -->
            <set name="streets" table="street" cascade="all" inverse="true" lazy="false">
                <key>
                    <column name="district_id" not-null="true" />
                </key>
                <one-to-many class="cn.jbit.houserent.bean.Street" />
            </set>
        </class>
    </hibernate-mapping>
    你看看吧,希望对你有帮助