如何在同一个表配置一对多关系映射配置?表中有一列与当前表的主键关联,如parentId=0,是父级,大于0的必须和父级关联。

解决方案 »

  1.   

    最好不要用Hibernate来配置复杂的数据库关系,这样效率会很低的
      

  2.   

    是不是有点像tree的结构,自关联
      

  3.   

    效率会很低是你配置不当。<set name="parent" inverse="true">
                <key>
                    <column name="id" not-null="true" />
                </key>
                <one-to-many class="yourclass" />
     </set>class里面加个Set parent=new HashSet();
      

  4.   

    举个例子吧,question表 与 answer表是一对多的关系
    <hibernate-mapping>
        <class name="com.wq.domain.Question" table="Question" schema="dbo" catalog="School">
            <id name="qid" type="java.lang.String">
                <column name="qid" length="50" />
                <generator class="native" />
            </id>
            <property name="qtitle" type="java.lang.String">
                <column name="qtitle" length="100" />
            </property>
            <property name="qcontent" type="java.lang.String">
                <column name="qcontent" length="500" />
            </property>
            <set name="answers" inverse="true">
                <key>
                    <column name="qid" length="50" />
                </key>
                <one-to-many class="com.wq.domain.Answer" />
            </set>
        </class>
    </hibernate-mapping>