和one to one 一样,首先写了两个实体类Department(private int deptid;private String dname;private String location;
private Set<Employee> employees;)和Employee(private int empid;private String ename;private Department dept;)生成get,set方法,
然后同样配置实体类的映射文件Department.hbm.xml和Employee.hbm.xml。
代码:
----------Department.hbm.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd" >
<hibernate-mapping>
<class name="cn.hdu.entity.Department" table="DEPARTMENT">
<id name="deptid" column="DEPTID">
<generator class="sequence"><param name="sequence">dept_sequence</param></generator>
</id>
<property name="dname" column="DNAME"></property>
<property name="location" column="LOCATION"></property>
<set name="employees" cascade="save-update" lazy="false">
<key column="DEPTID"></key>
<one-to-many class="cn.hdu.entity.Employee"/>
</set>
</class>
</hibernate-mapping>
-----------Employee.hbm.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd" >
<hibernate-mapping>
<class name="cn.hdu.entity.Employee" table="EMPLOYEE">
<id name="empid" column="EMPID">
<generator class="sequence"><param name="sequence">emp_sequence</param></generator>
</id>
<property name="ename" column="ENAME"></property>
<many-to-one name="dept" column="DEPTID" class="cn.hdu.entity.Department" lazy="false"></many-to-one>
</class>
</hibernate-mapping>
注意:属性的解释大多同于 one to one例子(详见Hibernate one to one配置),这里面说下为什么要用set:set代表把整个employees对象装入其中,
之后many to one对应于Department dept.deptid,或者说对应于表Department中DEPTID字段,而one to many代表表Department中DEPTID字段对应于相应的表emplooy一条或者多条记录
做完映射之后同样不要忘记把映射文件写入hibernate.cfg.xml;
代码:
<session-factory>
.........
<property name="show_sql">true</property>
<mapping resource="cn/hdu/entity/Department.hbm.xml" />
<mapping resource="cn/hdu/entity/Employee.hbm.xml" />
</session-factory>
其中show_sql ..true;代表执行时输出sql语句。
之后写一个实现类
public class ServiceImp {
public Employee geteEmployeeByName(String name){
Employee employee = new Employee();
Session session=HibernateSessionFactory.getSession();
Query query=session.createQuery("from Employee
where ename='"+name+"'");
employee=(Employee) query.list().get(0);
HibernateSessionFactory.closeSession();
return employee;
}
}
测试类:
public class TestDepartment {
public static void main(String[] args) {
ServiceImp service = new ServiceImp();
Department dept=new Department();
Employee emp=new Employee();
emp=service.geteEmployeeByName("zhang");
System.out.print(emp.getDept().getLocation());
}
- 浏览: 52544 次
- 性别:
- 来自: 北京
最新评论
-
xxyztwz:
如果你勇于挑起别人不愿承担的责任如果你勇于在黑暗中孤立无援的探 ...
软件工程师的成长之路 -
tanzhen-1988:
list本身就是store数据的一个引用,list的操作就是对 ...
ThreadLocal的疑问 -
smallbee:
list不是从store拿出来的么 搞笑
ThreadLocal的疑问 -
朝风一旭:
你直接操作的就是list对象啊
list放在store里面当然 ...
ThreadLocal的疑问 -
lvwenwen:
tanzhen-1988 写道我和我女朋友的感情很好,大学谈了 ...
一个刚工作的程序员的苦逼生活
相关推荐
标题"Hibernate one to many(many to one) 配置"涉及到的是关系型数据库在Java中的持久化框架Hibernate中的两种关联映射关系:一对一(One-to-One)和多对一(Many-to-One)。在数据库设计中,这种关系很常见,例如...
"Hibernate one-to-many / many-to-one关系映射"是两个基本的关系类型,用于表示实体间的关联。在这个主题中,我们将深入探讨这两种关系映射的原理、配置和实际应用。 一、一对一(one-to-one)与一对多(one-to-...
本话题主要探讨两种基本的关系映射类型:many-to-one(多对一)和one-to-many(一对多)。这两种关系映射是数据库中常见的关联类型,理解和掌握它们对于开发高质量的Java应用至关重要。 1. many-to-one关系 many-to...
在Java的持久化框架Hibernate中,"Many-to-One"关系是一种常见的关联映射类型,它表示一个实体(类)可以与多个其他实体实例相关联。在这个主题中,我们将深入探讨Hibernate如何处理这种关系,以及如何在实际编程中...
本示例将详细讲解如何在Hibernate中实现多对多(many-to-many)的关系映射。 在数据库设计中,多对多关系是指两个实体之间存在多个关联,比如学生和课程的关系,一个学生可以选修多门课程,一门课程也可以被多个...
在配置双向一对多关联时,我们通常在"多"一端(这里是`Student`)的集合属性上使用`<many-to-one>`标签,将`Classes`对象映射到数据库中的外键。同时,在"一"端(`Classes`)使用`<set>`标签,表示班级可以包含多个...
在Java的持久化框架Hibernate中,One-to-Many映射是一种常见的关系映射方式,它表示一个实体(比如一个用户)可以与多个其他实体(比如用户的订单)进行关联。在这个场景下,"用户"是一方,称为"One","订单"是另...
在Java持久化框架Hibernate中,`one_to_many`映射是一种常见的关系模型,它表示一个实体(类)可以与多个其他实体(类)关联。在这个关系中,一个实体(通常是"one"端)对应多个实体实例("many"端)。在数据库中,...
在Hibernate中,一对一唯一外键关联映射可以通过 `<many-to-one>` 标签来配置。例如,以下是Person实体与IdCard实体的一对一唯一外键关联映射配置: ```xml <many-to-one name="idCard" column="card_id...
### Hibernate Many-to-One (多对一) 及 Cascade (级联) #### 一、Many-to-One(多对一) 在数据库设计中,实体之间的关系主要包括一对一、一对多、多对多等几种类型。而在ORM(对象关系映射)框架Hibernate中,...
在Hibernate中,`one-to-many`关系是常见的实体间关系之一,表示一个实体可以与多个其他实体相关联。本文将深入探讨`Hibernate one-to-many`注解的使用和实现细节。 ### 一、`@OneToMany`注解概述 `@OneToMany`...
本实例将详细讲解如何在Hibernate中实现Many-to-One关系映射,这是一种常见的数据库关联,表示一个实体可以与多个其他实体相关联。 在Many-to-One关系中,通常一个实体(如部门)可以有多个相关实体(如员工),而...
标题中的“Hibernate - one to many - update”指向的是一个关于Hibernate框架中的一对多关联关系在更新操作时的专题。Hibernate是Java开发中常用的持久化框架,它简化了数据库操作,使得开发者可以更加关注业务逻辑...
本文将深入探讨Hibernate中一对多(One-to-Many)关系的处理方式,特别是通过外键映射和inverse属性的应用场景。 #### 一对多关系概念 一对多关系在数据库设计中非常常见,它指的是一个实体可以与多个其他实体关联...
除了基本的`<many-to-one>`映射外,Hibernate还支持多种映射策略,如`@ManyToOne`、`@JoinColumn`等注解,这些注解可以在实体类中直接使用,使得代码更加简洁明了。例如: ```java @ManyToOne(fetch = FetchType....
本文主要关注Hibernate中的一个核心概念——一对一(One-to-One)、一对多(One-to-Many)和多对一(Many-to-One)关联映射,特别是关于“一到多”单向和双向关联映射的配置心得。 首先,让我们了解“一到多”关联...
本文将深入探讨“Hibernate关联映射中的Many-to-One关系”。 Many-to-One关联是现实世界中常见的关系类型,比如一个学生可以对应多个课程,而一个课程可能被多个学生选修。在数据库中,这通常表现为一对多(One-to-...
为了使用 `publisher` 属性,我们需要在 `Book` 类的 Hibernate 映射文件中添加 `<many-to-one>` 映射。这将在 `BOOK` 表中添加一个名为 `PUBLISHER_ID` 的列,并存储关联出版商的 ID。 ```xml <!-- 其他属性的...
本程序包含: hibenate 上传图片,二进制数据,大文本,集合映射的多种关系,onetoone,ontomany,manytomany等关系详细代码示例以及注释,全部由本人测试通过,对理解hibernate配置有极大帮助。