小弟在项目中使用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_manytomany_1.jpg`和`hibernate_manytomany_2.jpg`可能包含了多对多关联的配置或操作示意图,而`Hibernate_manytomanyTest.rar`和`accpDB.rar`则可能是相关的源代码或数据库文件,供学习者下载并运行测试...
根据提供的文件信息,我们可以深入探讨Hibernate中的连表查询方法及其应用。下面将详细介绍与标题、描述及部分代码相关的几个核心知识点: ### Hibernate 连表查询基础 Hibernate 是一个开源的对象关系映射(ORM)...
在Java世界中,Hibernate是一个非常流行的ORM(对象关系映射)框架,它允许开发者将数据库操作与业务逻辑解耦,从而提高开发效率。本篇文章主要探讨如何利用Hibernate实现动态SQL查询,结合XML配置和FREEMARKER模板...
本项目“hibernate一对多项目”旨在演示如何在JavaWeb应用中使用Hibernate处理一对多的关系映射。这里我们将深入探讨 Hibernate 的一对多关系、配置以及在实际项目中的应用。 首先,一对多关系在数据库中很常见,...
本教程将带你入门Hibernate的多对多实体映射,帮助你理解如何通过源码来实现这种复杂的关系映射。 一、Hibernate概述 Hibernate是一个对象关系映射(ORM)框架,它允许我们将Java对象(实体)与数据库表进行映射,...
在hibernate中,通常配置对象关系映射关系有两种,一种是基于xml的方式,另一种是基于annotation的注解方式,熟话说,萝卜青菜,可有所爱,每个人都有自己喜欢的配置方式,这个是xml配置的例子
关于hibernate的关联操作 分享下
本文将深入探讨如何使用Hibernate实现递归查询,以解决在数据层次结构中涉及父节点与子节点关系时的问题。递归查询通常用于处理树形结构的数据,例如组织结构、菜单系统或者文件目录等。 首先,我们需要了解递归的...
总结,"Hibernate 多表连接分页查询示范项目"是一个实用的示例,它展示了如何在实际应用中利用 Hibernate Criteria API 实现复杂查询和分页,对于学习和掌握 Hibernate 的高级特性和数据库操作技巧非常有帮助。...
在hibernate中,通常配置对象关系映射关系有两种,一种是基于xml的方式,另一种是基于annotation的注解方式,熟话说,萝卜青菜,可有所爱,每个人都有自己喜欢的配置方式,我在试了这两种方式以后,发现使用...
6. **多对一、一对多、多对多关联**:Hibernate支持各种关系映射,包括一对一、一对多、多对一和多对多的关联映射,便于处理复杂的数据库关系。 7. **级联操作**:级联属性允许将一个实体的操作(如保存、删除)...
8. **关联映射**: Hibernate支持一对一、一对多、多对一、多对多的关联映射,通过配置实现对象之间的关系。 9. **懒加载与立即加载**: 懒加载在需要时才加载关联的对象,而立即加载则会在获取主对象时一起加载关联...
1. **强大的ORM支持**:Hibernate提供了丰富的功能来支持对象-关系映射,包括懒加载、缓存机制等高级特性。 2. **JPA兼容性**:自Hibernate 3.2版本开始,它已经完全兼容JPA标准。这意味着开发者可以在Hibernate...
1. One-to-One、One-to-Many和Many-to-Many关联:Hibernate支持多种对象间的关联映射,如一对一、一对多和多对多,通过@OneToOne、@OneToMany和@ManyToMany等注解实现。 2. Collections:Hibernate允许在实体类中...
- 查询:可以通过HQL(Hibernate Query Language)或者 Criteria API 来查询具有关联关系的数据。例如,根据学生ID获取其选修的所有课程,或者根据课程ID获取选修该课程的所有学生。 - 修改:在修改关联关系时,只...
1. **配置一对一关系**: - 在实体类中使用`@OneToOne`注解声明一对一关系,如:`@OneToOne(cascade = CascadeType.ALL, fetch = FetchType.LAZY)`,其中`cascade`指定级联操作,`fetch`控制加载策略。 - 在关联...
本文将详细介绍如何利用Struts和Hibernate来实现对Oracle数据库中所有记录的查询及显示功能。 #### 二、技术背景介绍 1. **Struts**:Struts是一个开源的MVC(Model-View-Controller)框架,主要用于简化Web应用...
Hibernate对象关系映射一对多 很基础等文档
总的来说,《孙卫琴精通Hibernate Part1》涵盖了Hibernate的基本概念、配置、对象关系映射、查询以及一些基础的使用技巧。学习这部分内容,开发者将能够熟练地运用Hibernate进行数据操作,为后续的Part2和Part3打下...
1、Hibernate 是一个 ORM(Object-Relational Mapping)框架,用于把对象模型 表示的对象映射到基于 SQL 的关系模型数据结构中去,采用完全面向对象的 方式来操作数据库; 2、Hibernate 的主要作用是简化应用的数据...