Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何使用同一列hibernate设置多个一对多关系_Java_Xml_Hibernate_One To Many_Hibernate Onetomany - Fatal编程技术网

Java 如何使用同一列hibernate设置多个一对多关系

Java 如何使用同一列hibernate设置多个一对多关系,java,xml,hibernate,one-to-many,hibernate-onetomany,Java,Xml,Hibernate,One To Many,Hibernate Onetomany,有两个实体 路线到达、到达和离开,出发ID作为位置 地点到达、离开作为路线 位置将与路由表有2个一对多关系 我正在试着设置 Route.xml <many-to-one name="departure" class="com.nakisa.agency.Location" fetch="select" insert="false" update="false"> <column name="locationID" not-null="true" />

有两个实体

路线到达、到达和离开,出发ID作为位置 地点到达、离开作为路线 位置将与路由表有2个一对多关系

我正在试着设置

Route.xml

 <many-to-one name="departure" class="com.nakisa.agency.Location" fetch="select" insert="false" update="false">
        <column name="locationID" not-null="true" />
    </many-to-one>

     <many-to-one name="arrival" class="com.nakisa.agency.Location" fetch="select" insert="false" update="false">
        <column name="locationID" not-null="true" />
    </many-to-one>
Location.xml

<set name="arrivals" table="Routes" inverse="true" lazy="true" fetch="select">
            <key>
                <column name="arrivalID" not-null="true" />
            </key>
            <one-to-many class="com.nakisa.agency.Route" />
        </set>


        <set name="departures" table="Routes" inverse="true" lazy="true" fetch="select">
            <key>
                <column name="departureID" not-null="true" />
            </key>
            <one-to-many class="com.nakisa.agency.Route" />
        </set>
我得到了错误,因为departureID为空,即使我在路由中设置了departureID


如何更正这些映射才能正常工作

我认为您在获取方面存在问题:

Lazy=true | false控制是急切加载关联还是按需加载关联。 fetch=select | subselect | join |批处理控制在需要加载实体或集合时如何加载该实体或集合

使用lazy=true和fetch=select,Hibernate将延迟加载集合,并使用select命令加载它。如果设置lazy=false,将执行相同的选择,不同之处在于它将被急切地执行。希望这是有意义的

尝试设置lazy=false,然后查看您的departureID是否仍然为null