`
supben
  • 浏览: 330189 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

hibernate one-to-many

    博客分类:
  • SSH
阅读更多
同样的,班级和学生是一对多的关系,
目标,查询班级的时候,希望查询出班级学生列表!!

GradeClass.java  POJO代码
public class GradeClass {

	private Long gradeClassId;
	private String gradeClassName;
	private Set<User> users = new HashSet<User>();
         //...省略get和set方法
}



GradeClass.hbm.xml代码
<hibernate-mapping>
		<class name="com.supben.pojo.GradeClass" table="gradeclass">
				<id name="gradeClassId" type="java.lang.Long">
						<column length="20" name="gradeClassId" />
						<generator class="identity"></generator>
				</id>

				<property name="gradeClassName" type="java.lang.String">
						<column name="gradeClassName" />
				</property>
  <!--column="gradeClassId"指的是user(class属性指定)表中的gradeClassId字段 -->
				<set name="users" lazy="false" fetch="join">
						<key column="gradeClassId" />
						<one-to-many class="com.supben.pojo.User" />
				</set>

		</class>
</hibernate-mapping>


user.hbm.xml: 和平时配置没有任何的不同
<hibernate-mapping>
		<class name="com.supben.pojo.User" table="User">
				<id name="userId" type="java.lang.Long">
						<column length="20" name="userId" />
						<generator class="identity"></generator>
				</id>

				<property name="userName" type="java.lang.String">
						<column name="userName" />
				</property>
		</class>
</hibernate-mapping>




测试代码
public void testFind() {
		List<GradeClass> classList = gradeClassService.findAll();
		System.out.println("*************************************");
		Set<User> users = classList.get(0).getUsers();

		for (User user : users) {
			System.out.println(user.getUserName());
		}
	}





运行结果:

Hibernate: select this_.gradeClassId as gradeCla1_0_1_, this_.gradeClassName as gradeCla2_0_1_, users2_.gradeClassId as gradeCla3_3_, users2_.userId as userId3_, users2_.userId as userId1_0_, users2_.userName as userName1_0_, users2_.gradeClassId as gradeCla3_1_0_ from gradeclass this_ left outer join User users2_ on this_.gradeClassId=users2_.gradeClassId
*************************************
chenglong
supben


注:GradeClass.hbm.xml中set里面的column="gradeClassId",对应的是user表里面的字段。 如同many-to-one一样,one-to-many默认的也是lazy="true" fetch="select"。(见前面一篇)。所以可以酌情配置成lazy="false" fetch="join"
0
0
分享到:
评论

相关推荐

    Hibernate one-to-many / many-to-one关系映射

    "Hibernate one-to-many / many-to-one关系映射"是两个基本的关系类型,用于表示实体间的关联。在这个主题中,我们将深入探讨这两种关系映射的原理、配置和实际应用。 一、一对一(one-to-one)与一对多(one-to-...

    Hibernate one-to-many-annotation

    在Hibernate中,`one-to-many`关系是常见的实体间关系之一,表示一个实体可以与多个其他实体相关联。本文将深入探讨`Hibernate one-to-many`注解的使用和实现细节。 ### 一、`@OneToMany`注解概述 `@OneToMany`...

    hibernate学习5之one-to-many双向关联.docx

    在配置双向一对多关联时,我们通常在"多"一端(这里是`Student`)的集合属性上使用`&lt;many-to-one&gt;`标签,将`Classes`对象映射到数据库中的外键。同时,在"一"端(`Classes`)使用`&lt;set&gt;`标签,表示班级可以包含多个...

    (4)Hibernate中的many-to-one和one-to-many关系

    本话题主要探讨两种基本的关系映射类型:many-to-one(多对一)和one-to-many(一对多)。这两种关系映射是数据库中常见的关联类型,理解和掌握它们对于开发高质量的Java应用至关重要。 1. many-to-one关系 many-to...

    hibernate one-to-one 一对一唯一外键关联映射_单向 and 双向

    在Hibernate中,一对一唯一外键关联映射可以通过 `&lt;many-to-one&gt;` 标签来配置。例如,以下是Person实体与IdCard实体的一对一唯一外键关联映射配置: ```xml &lt;many-to-one name="idCard" column="card_id...

    hibernate many-to-one(多对一)及 cascade(级联).doc

    ### Hibernate Many-to-One (多对一) 及 Cascade (级联) #### 一、Many-to-One(多对一) 在数据库设计中,实体之间的关系主要包括一对一、一对多、多对多等几种类型。而在ORM(对象关系映射)框架Hibernate中,...

    hibernate one-to-many 单/双向关联映射配置心得

    本文主要关注Hibernate中的一个核心概念——一对一(One-to-One)、一对多(One-to-Many)和多对一(Many-to-One)关联映射,特别是关于“一到多”单向和双向关联映射的配置心得。 首先,让我们了解“一到多”关联...

    Hibernate-one-to-many

    同时,`Account.hbm.xml`中的`many-to-one`元素将`column`属性设置为`FID`,表示通过`FID`字段关联到`User`实体。 #### 测试场景解释 在测试场景中,我们创建了一个`User`对象和一个`Account`对象,并在`User`对象...

    Hibernate Tutorial 04 (Many-to-one and One-to-one Association

    为了使用 `publisher` 属性,我们需要在 `Book` 类的 Hibernate 映射文件中添加 `&lt;many-to-one&gt;` 映射。这将在 `BOOK` 表中添加一个名为 `PUBLISHER_ID` 的列,并存储关联出版商的 ID。 ```xml &lt;!-- 其他属性的...

    Hibernate Mapping Many-to-One 实例 内附源代码及附件下载

    本实例将详细讲解如何在Hibernate中实现Many-to-One关系映射,这是一种常见的数据库关联,表示一个实体可以与多个其他实体相关联。 在Many-to-One关系中,通常一个实体(如部门)可以有多个相关实体(如员工),而...

    Hibernate one to many(many to one) 配置

    标题"Hibernate one to many(many to one) 配置"涉及到的是关系型数据库在Java中的持久化框架Hibernate中的两种关联映射关系:一对一(One-to-One)和多对一(Many-to-One)。在数据库设计中,这种关系很常见,例如...

    Hibernate应用例子many-to-many

    本示例将详细讲解如何在Hibernate中实现多对多(many-to-many)的关系映射。 在数据库设计中,多对多关系是指两个实体之间存在多个关联,比如学生和课程的关系,一个学生可以选修多门课程,一门课程也可以被多个...

    Hibernate中many-to-one关系的编写_远航的水手

    Hibernate中many-to-one关系的编写_远航的水手

    Hibernate中many-to-one关系的编写_远航的水手.htm

    Hibernate中many-to-one关系的编写_远航的水手.htm

    Hibernate实现many-to-many的映射关系

    在本文中,我们将深入探讨如何使用Hibernate来实现多对多(many-to-many)的映射关系。 首先,多对多映射关系通常涉及到两个实体类之间的关联,例如在学生选课的例子中,学生(Student)和课程(Course)之间存在多...

    NHibernate One-to-Many一对多映射-xxlinux_com

    在数据库世界中,一对多(One-to-Many)关系是一种常见的关联类型,其中一个表(父表)可以与多个其他表(子表)相关联。在NHibernate中,配置这种映射关系对于理解和使用ORM至关重要。 一对多关系意味着一个实体...

    hibernate many to one

    在Java的持久化框架Hibernate中,"Many-to-One"关系是一种常见的关联映射类型,它表示一个实体(类)可以与多个其他实体实例相关联。在这个主题中,我们将深入探讨Hibernate如何处理这种关系,以及如何在实际编程中...

    hibernate-one-to-many-uni

    【标题】"hibernate-one-to-many-uni" 指的是在Hibernate框架下实现的一对多单向关联关系。Hibernate是Java开发中常用的持久化框架,它简化了数据库操作,使得开发者可以更加专注于业务逻辑而不是数据库交互。在这个...

    hibernate5--3.映射关系

    本文将深入探讨Hibernate5中的映射关系,主要包括多对多(Many-to-Many)和一对多(One-to-Many)这两种关系。 一、多对多映射(Many-to-Many) 多对多关系在数据库中表现为两个表之间存在多个连接记录,而在对象...

Global site tag (gtag.js) - Google Analytics