Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.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
Hibernate通过联接表加载XML属性_Hibernate_Hibernate Mapping - Fatal编程技术网

Hibernate通过联接表加载XML属性

Hibernate通过联接表加载XML属性,hibernate,hibernate-mapping,Hibernate,Hibernate Mapping,我目前有以下表格: 地址:地址ID,邮政编码,国家代码 国家:国家代码、国家名称(名称列) 邮政编码:国家代码、邮政编码、地名(名称列) 现在我想按地址ID加载地址 ->来自使用countryCode的国家/地区的countryName ->使用countryCode和postalCode的postalcodes中的地名 我已经使用Hibernate XML映射映射了地址: <class name="entity.Address" table="address"> <id na

我目前有以下表格:

地址:地址ID,邮政编码,国家代码
国家:国家代码、国家名称(名称列)
邮政编码:国家代码、邮政编码、地名(名称列)

现在我想按地址ID加载地址
->来自使用countryCode的国家/地区的countryName
->使用countryCode和postalCode的postalcodes中的地名

我已经使用Hibernate XML映射映射了地址:

<class name="entity.Address" table="address">
<id name="addressID" type="java.lang.Integer" column="addressID">
    <generator class="identity" />
</id>

<property name="streetName" type="string" column="streetName"/>
<property name="streetNumber" type="string" column="streetNumber" />
<property name="countryCode" type="string" column="countryCode" />
<property name="postalCode" type="string" column="postalCode" />

<join table="countries">
    <key foreign-key="countryCode" column="countryCode" property-ref="countryCode"/>
    <property name="countryName" column="name_en"/>
</join>

<join table="postalcodes">
    <key foreign-key="postalCode" column="postalCode" property-ref="postalCode"/>
    <property name="placeName" column="placeName"/>
</join>

</class>
我不知道使用联接表是否是正确的方法,但Hibernate SQL输出需要以下更改才能获得所需的结果:

inner join z_countries address0_1_ on address0_.countryCode=address0_1_.countryCode 
inner join z_postalcode address0_2_ on address0_.countryCode=address0_2_.countryCode and address0_.postalCode=address0_2_.postalCode
我需要对地图进行以下更改:

使用countryCode而不是addressID加入国家/地区表
使用国家代码和postalCode(而不是地址ID)加入postalcodes表

在过去的几个小时里,我一直试图破解这个问题,但没有任何结果。
我已经检查了JBoss上的示例,搜索关联、联接表,但是由于这些字段不是实体,比如Order和Customer,所以我无法使其工作。
我认为这一定是一个非常简单的事情,一个小小的改变

提前感谢您的帮助,如果您对此有任何进一步的问题,请询问

inner join z_countries address0_1_ on address0_.countryCode=address0_1_.countryCode 
inner join z_postalcode address0_2_ on address0_.countryCode=address0_2_.countryCode and address0_.postalCode=address0_2_.postalCode