`
soltex
  • 浏览: 10357 次
  • 来自: ...
社区版块
存档分类
最新评论

Hibenate 1对1关系查询迷惑,请大侠们指点

阅读更多
小弟在项目中使用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_manytomany_1.jpg`和`hibernate_manytomany_2.jpg`可能包含了多对多关联的配置或操作示意图,而`Hibernate_manytomanyTest.rar`和`accpDB.rar`则可能是相关的源代码或数据库文件,供学习者下载并运行测试...

    Hibernate连表查询 Hibernate连表查询

    根据提供的文件信息,我们可以深入探讨Hibernate中的连表查询方法及其应用。下面将详细介绍与标题、描述及部分代码相关的几个核心知识点: ### Hibernate 连表查询基础 Hibernate 是一个开源的对象关系映射(ORM)...

    hibernate实现动态SQL查询

    在Java世界中,Hibernate是一个非常流行的ORM(对象关系映射)框架,它允许开发者将数据库操作与业务逻辑解耦,从而提高开发效率。本篇文章主要探讨如何利用Hibernate实现动态SQL查询,结合XML配置和FREEMARKER模板...

    hibernate一对多项目

    本项目“hibernate一对多项目”旨在演示如何在JavaWeb应用中使用Hibernate处理一对多的关系映射。这里我们将深入探讨 Hibernate 的一对多关系、配置以及在实际项目中的应用。 首先,一对多关系在数据库中很常见,...

    hibernate 映射关系学习入门 多对多实体映射

    本教程将带你入门Hibernate的多对多实体映射,帮助你理解如何通过源码来实现这种复杂的关系映射。 一、Hibernate概述 Hibernate是一个对象关系映射(ORM)框架,它允许我们将Java对象(实体)与数据库表进行映射,...

    Hibernate1对多1对1多对多关联映射例子源码含xml配置

    在hibernate中,通常配置对象关系映射关系有两种,一种是基于xml的方式,另一种是基于annotation的注解方式,熟话说,萝卜青菜,可有所爱,每个人都有自己喜欢的配置方式,这个是xml配置的例子

    hibernate映射关系关联查询

    关于hibernate的关联操作 分享下

    hibernate实现递归查询

    本文将深入探讨如何使用Hibernate实现递归查询,以解决在数据层次结构中涉及父节点与子节点关系时的问题。递归查询通常用于处理树形结构的数据,例如组织结构、菜单系统或者文件目录等。 首先,我们需要了解递归的...

    Hibernate 多表连接分页查询示范项目

    总结,"Hibernate 多表连接分页查询示范项目"是一个实用的示例,它展示了如何在实际应用中利用 Hibernate Criteria API 实现复杂查询和分页,对于学习和掌握 Hibernate 的高级特性和数据库操作技巧非常有帮助。...

    Hibernate1对多1对1多对多关联映射例子源码含注解配置

    在hibernate中,通常配置对象关系映射关系有两种,一种是基于xml的方式,另一种是基于annotation的注解方式,熟话说,萝卜青菜,可有所爱,每个人都有自己喜欢的配置方式,我在试了这两种方式以后,发现使用...

    Hibernate 符合JAVA习惯的关系数据库持久化.pdf

    6. **多对一、一对多、多对多关联**:Hibernate支持各种关系映射,包括一对一、一对多、多对一和多对多的关联映射,便于处理复杂的数据库关系。 7. **级联操作**:级联属性允许将一个实体的操作(如保存、删除)...

    hibernate必须包/教程/查询

    8. **关联映射**: Hibernate支持一对一、一对多、多对一、多对多的关联映射,通过配置实现对象之间的关系。 9. **懒加载与立即加载**: 懒加载在需要时才加载关联的对象,而立即加载则会在获取主对象时一起加载关联...

    JPA和Hibernate的关系

    1. **强大的ORM支持**:Hibernate提供了丰富的功能来支持对象-关系映射,包括懒加载、缓存机制等高级特性。 2. **JPA兼容性**:自Hibernate 3.2版本开始,它已经完全兼容JPA标准。这意味着开发者可以在Hibernate...

    Hibernate API Documentation 3.3.0.SP1

    1. One-to-One、One-to-Many和Many-to-Many关联:Hibernate支持多种对象间的关联映射,如一对一、一对多和多对多,通过@OneToOne、@OneToMany和@ManyToMany等注解实现。 2. Collections:Hibernate允许在实体类中...

    hibernate(一对多,多对一映射)操作

    - 查询:可以通过HQL(Hibernate Query Language)或者 Criteria API 来查询具有关联关系的数据。例如,根据学生ID获取其选修的所有课程,或者根据课程ID获取选修该课程的所有学生。 - 修改:在修改关联关系时,只...

    Hibernate一对一关系源码

    1. **配置一对一关系**: - 在实体类中使用`@OneToOne`注解声明一对一关系,如:`@OneToOne(cascade = CascadeType.ALL, fetch = FetchType.LAZY)`,其中`cascade`指定级联操作,`fetch`控制加载策略。 - 在关联...

    struts+hibernate查询所有记录

    本文将详细介绍如何利用Struts和Hibernate来实现对Oracle数据库中所有记录的查询及显示功能。 #### 二、技术背景介绍 1. **Struts**:Struts是一个开源的MVC(Model-View-Controller)框架,主要用于简化Web应用...

    Hibernate对象关系映射

    Hibernate对象关系映射一对多 很基础等文档

    孙卫琴精通hibernate part1

    总的来说,《孙卫琴精通Hibernate Part1》涵盖了Hibernate的基本概念、配置、对象关系映射、查询以及一些基础的使用技巧。学习这部分内容,开发者将能够熟练地运用Hibernate进行数据操作,为后续的Part2和Part3打下...

    hibernate-prj1

    1、Hibernate 是一个 ORM(Object-Relational Mapping)框架,用于把对象模型 表示的对象映射到基于 SQL 的关系模型数据结构中去,采用完全面向对象的 方式来操作数据库; 2、Hibernate 的主要作用是简化应用的数据...

Global site tag (gtag.js) - Google Analytics