Hibernate通过联接表加载XML属性
我目前有以下表格: 地址:地址ID,邮政编码,国家代码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加载地址
->来自使用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