小弟在项目中使用Hibernate的一对一关系,见.hbm文件如下:
class AcirsUser
<hibernate-mapping>
<class name="uk.co.quidos.acirs.model.entity.AcirsUser" table="acirs_user" catalog="acirs_v1" lazy="false">
<id name="userId" type="java.lang.String">
<column name="user_id" length="32" />
<generator class="uuid.hex" />
</id>
<property name="userName" type="java.lang.String">
<column name="user_name" length="32" not-null="true" />
</property>
<property name="userPwd" type="java.lang.String">
<column name="user_pwd" length="32" />
</property>
<property name="status" type="java.lang.Integer">
<column name="status" not-null="true" />
</property>
<one-to-one name="adminInfo" class="uk.co.quidos.acirs.model.entity.AdminInfo" fetch="join"/>
<one-to-one name="eaInfo" class="uk.co.quidos.acirs.model.entity.EaInfo" fetch="join"/>
<set name="userRoleRels" inverse="true">
<key>
<column name="user_id" length="32" not-null="true" />
</key>
<one-to-many class="uk.co.quidos.acirs.model.entity.UserRoleRel" />
</set>
<set name="preForms" inverse="true">
<key>
<column name="user_id" length="32" unique="true" />
</key>
<one-to-many class="uk.co.quidos.acirs.model.entity.PreForm" />
</set>
</class>
</hibernate-mapping>
class EaInfo:
<hibernate-mapping>
<class name="uk.co.quidos.acirs.model.entity.EaInfo" table="ea_info" catalog="acirs_v1" lazy="false">
<id name="userId" type="java.lang.String">
<column name="user_id" length="32" />
<generator class="foreign">
<param name="property">acirsUser</param>
</generator>
</id>
<one-to-one name="acirsUser" class="uk.co.quidos.acirs.model.entity.AcirsUser" constrained="true"/>
<many-to-one name="city" class="uk.co.quidos.acirs.model.entity.City" fetch="select">
<column name="city_id" length="32" not-null="true" unique="true" />
</many-to-one>
<many-to-one name="qualifications" class="uk.co.quidos.acirs.model.entity.Qualifications" fetch="select">
<column name="qualification_id" length="32" not-null="true" unique="true" />
</many-to-one>
<many-to-one name="title" class="uk.co.quidos.acirs.model.entity.Title" fetch="select">
<column name="title_id" length="32" not-null="true" unique="true" />
</many-to-one>
<property name="firstName" type="java.lang.String">
<column name="first_name" length="64" />
</property>
<property name="surName" type="java.lang.String">
<column name="sur_name" length="64" />
</property>
<property name="accreditationScheme" type="java.lang.String">
<column name="accreditation_scheme" length="128" />
</property>
<property name="tel" type="java.lang.String">
<column name="tel" length="128" />
</property>
<property name="email" type="java.lang.String">
<column name="email" length="128" />
</property>
<property name="companyName" type="java.lang.String">
<column name="company_name" length="128" />
</property>
<property name="address1" type="java.lang.String">
<column name="address1" length="128" />
</property>
<property name="address2" type="java.lang.String">
<column name="address2" length="128" />
</property>
<property name="address3" type="java.lang.String">
<column name="address3" length="128" />
</property>
<property name="postCode" type="java.lang.String">
<column name="post_code" length="64" />
</property>
<property name="relatedPartyDisclosure" type="java.lang.String">
<column name="related_party_disclosure" length="10" />
</property>
</class>
</hibernate-mapping>
查询方式2种:
如果使用
select
acirsUser,eaInfo
from AcirsUser as acirsUser
inner join
acirsUser.eaInfo as eaInfo
这种方式查询,查询查来的eaInfo项就不为空,而且数据正确
如果使用new map()方式:
select
new map(acirsUser,eaInfo)
from AcirsUser as acirsUser
inner join
acirsUser.eaInfo as eaInfo
如果使用new map方式查询出来的eaInfo就为null
比较迷惑,请兄弟姐妹们指点,谢谢 ……
分享到:
相关推荐
hibernate一对一的关系hibernate一对一的关系hibernate一对一的关系hibernate一对一的关系hibernate一对一的关系hibernate一对一的关系
Hibernate多对多关联添加及查询示例
Hibernate映射一对多关联关系
这里包含了hibernate多对一单向关联关系实现源码,希望对你有用。
hibernate一对一外键关系,很适合入门者学习.
免积分的资源,希望可以帮到大家,这是我学习hibernate时候,自己写的代码。希望大家学业有成。
hibernate多对多的关系实例hibernate多对多的关系实例hibernate多对多的关系实例
hibernate(多对多关系映射)实现存储,内附sql脚本和详细的注释,适合初学者
Hibernate连表查询 Hibernate连表查询
hibernate实现多对多关联关系源码
Hibernate多对多关联关系demo
在hibernate中,通常配置对象关系映射关系有两种,一种是基于xml的方式,另一种是基于annotation的注解方式,熟话说,萝卜青菜,可有所爱,每个人都有自己喜欢的配置方式,这个是xml配置的例子
关于hibernate的关联操作 分享下
hibernate 对象关系映射总结hibernate 对象关系映射总结hibernate 对象关系映射总结
Hibernate一对一,一对多,多对多实例
后面的hibernate代码,我会慢慢的上传上去,这些资源都是免费的,希望可以帮到大家。
在hibernate中,通常配置对象关系映射关系有两种,一种是基于xml的方式,另一种是基于annotation的注解方式,熟话说,萝卜青菜,可有所爱,每个人都有自己喜欢的配置方式,我在试了这两种方式以后,发现使用...
NULL 博文链接:https://gaoquanyang.iteye.com/blog/1213765
hibernate one to one一对一关系示例,包括数据库备份文件。
1、在有外键的一方,可以维护关联关系,可以建立关联关系,同样也可以解除关联关系,可以任意删除本对象,如果在hbm.xml中设置了cascade="delete",也可以删除关联对象 2、在没有外键的一方,不可以维护关联关系,...