`
toreking
  • 浏览: 36702 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

Hibernate之对象关系

阅读更多


2. 类关联映射
    2.1 Many-to-One //这种关系模型是数据表的多对一关系:这个表的一个外键是引用目标表的主键字段
   //例如:职员(employee)和部门(department)的关系【许多职员在一个部门】
两个类的关系:employee has department(department是employee的一个属性)
<many-to-one name="department" column="depart_id"/> 
   

    2.2 One-to-One
//当一个表的主键同时是另一个表主键和外键时
//例如:User(id,username,password)与UserInfo(id,...)虽然类不同,但却代表现实中的一个对象

两个类的关系:User, UserInfo 互相有对方
//依赖方UserInfo

<hibernate-mapping package="com.xcz.demo"> 
<class name="UserInfo"> 
  <id name="id"> 
    <generator class="foreign" > 
    <param name="property">user</param> 
    </generator> 
  </id> 
  <property name="name" length="50"/> 
  <property name="sex" length="8"/> 
  <property name="birthday" /> 
  <property name="cardno" length="20"/> 

  <one-to-one name="user" constrained="true" cascade="save-update"></one-to-one> 
</class> 
</hibernate-mapping> 

 

UserInfo的被依赖方User

<hibernate-mapping package="com.xcz.demo"> 
<class name="User"> 
  <id name="id"> 
    <generator class="uuid.hex" /> 
  </id> 
  <property name="username" length="20"/> 
  <property name="userpws" length="20"/> 

  <one-to-one name="userInfo"/> 
</class> 
</hibernate-mapping> 

 
【看看执行代码】 

@Test 
public void one2OneExcute(){ 
Session session = getCurrSession(); 
Transaction tr = session.beginTransaction(); 

//添加被依赖方(User) 
// User u = new User(); 
// u.setUsername("xcz"); 
// u.setUserpws("123456xcz"); 

//根据被依赖方(User)添加依赖方(UserInfo) 
// UserInfo uin = new UserInfo(); 
// uin.setId("4028e534396bddf601396bddf9060001"); 
// uin.setName("谢成志"); 
// uin.setSex("男"); 
// uin.setBirthday(new Date()); 
// uin.setCardno("510922198811280012"); 
// uin.setUser((User)session.get(User.class, "4028e534396bddf601396bddf9060001")); 
// session.save(uin); 
System.out.println(session.get(User.class,"4028e534396bddf601396bddf9060001")); 
tr.commit(); 
session.close(); 
} 

 
    2.3 One-to-Many
private Set<Employee> emps;
<set name="emps">
    <key column="depart_id" />   <!-- 用于标识多的一方在表中存储本表中的主键的列名 -->
    <one-to-many class="Employee" /> <!-- 多的一方的类型 -->
</set> 
   

    2.4 Many-to-Many
<set name="users" table="t_u_r">
    <key column="role_id" />
    <many-to-many column="user_id" class="User" />
</set>

<set name="roles" table="t_u_r">
    <key column="user_id" />
    <many-to-many column="role_id" class="Role" />
</set>

 

分享到:
评论

相关推荐

    hibernate中的对象关系模型

    在Java持久化框架Hibernate中,对象关系模型(Object-Relational Mapping,ORM)是将数据库中的数据映射到Java对象的技术。它使得开发者能够用面向对象的方式来操作数据库,简化了数据库编程的过程。以下是对...

    Hibernate对象关系映射

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

    Hibernate对象对应关系总结

    本文主要介绍了对象之间的对应关系,包含对象之间一对一,一对多双向,多对多的关系,另外简单介绍了二级缓存和分页

    Hibernate对象关系详解

    **Hibernate对象关系详解** 在Java世界中,Hibernate作为一款强大的对象关系映射(ORM)框架,使得开发者可以方便地在Java对象与数据库表之间进行数据操作。本篇将深入探讨Hibernate中的对象关系映射,包括一对一...

    hibernate对象关系映射实例

    标题“Hibernate对象关系映射实例”表明我们将探讨的是使用Hibernate框架进行对象关系映射(ORM)的实际应用。ORM是将数据库表结构映射为Java类对象的一种技术,它使得开发者可以使用面向对象的方式来操作数据库,而...

    hibernate对象关系映射案例demo

    **hibernate对象关系映射案例demo** 在Java开发领域,对象关系映射(ORM)是一种将数据库中的数据与程序中的对象进行关联的技术,它极大地简化了数据操作。Hibernate作为一款流行的ORM框架,使得开发者无需关注底层...

    Hibernate 操纵持久化对象

    在Java开发中,Hibernate是一个强大的对象关系映射(ORM)框架,它简化了数据库与Java对象之间的交互。本篇将详细讲解如何使用Hibernate来操纵持久化对象,这对于深入理解Hibernate的核心概念至关重要。 **一、...

    精通Hibernate:Java对象持久化详解.zip

    Hibernate作为一款强大的对象关系映射(ORM)框架,极大地简化了Java应用中的数据库操作,使得开发者能够更专注于业务逻辑而不是繁琐的SQL代码。 在Java开发中,持久化是将应用程序中的对象状态保存到持久存储介质...

    对象-关系映射—Hibernate 培训 (中文)

    对象-关系映射—Hibernate 培训 (中文) 目录 一、持久化层-O/R Mapping 二、Hibernate入门 三、Hibernate映射申明(Mapping declaration) 四、持久化对象的状态和生命周期 五、Hibernate查询 六、Hibernate最佳...

    Hibernate操作持久化对象

    Hibernate的核心在于提供对象-关系映射(ORM)服务,使得开发者能够以面向对象的方式来管理和操作数据库中的数据,从而减少了直接使用JDBC进行数据操作时的复杂性和错误。 为什么需要Hibernate? 在传统的JDBC编程中...

    Hibernate 对象关系映射

    本人在厦门邦初培训时候用的ppt 快速入门文档 内容: 建立一对多的关联关系域模型 建立一对多的参照关系的模型 映射一对多关联关系 通过hibernateAPI级联操作关联对象 其它关系的映射:一对一,多对多

    精通Hibernate:Java对象持久化技术详解.pdf

    《精通Hibernate:Java对象持久化技术详解》这本书深入剖析了Hibernate这一流行的Java对象关系映射(ORM)框架,旨在帮助开发者全面理解并熟练掌握Hibernate的使用。Hibernate是Java开发中的重要工具,它简化了...

    Java 精通Hibernate对象持久化技术权威指南

    《Java精通Hibernate对象持久化技术权威指南》是一本深度探讨Java开发中如何高效地使用Hibernate进行对象持久化的专业书籍。本书旨在帮助Java开发者熟练掌握Hibernate框架,实现数据库操作的简化和自动化,提升软件...

    精通Hibernate:Java对象持久化技术详解

    Hibernate作为ORM(对象关系映射)框架,通过提供一种面向对象的方式来处理数据库操作,极大地降低了数据访问层的复杂性。 Hibernate的核心特性包括: 1. **对象关系映射**:Hibernate通过XML配置或注解方式,将...

    精通Hibernate:java对象持久化技术

    4. **ORM(对象关系映射)简介**: - ORM是将对象模型与关系数据模型之间的映射,简化数据库操作。Hibernate是Java中最流行的ORM框架之一。 5. **Hibernate**: - **作为中间件**:Hibernate提供面向对象的API,...

    精通 Hibernate:Java 对象持久化技术详解(第2版).part2

    6.3 Hibernate用对象标识符(OID)来区分对象 6.4 Hibernate的内置标识符生成器的用法  6.4.1 increment标识符生成器  6.4.2 identity标识符生成器  6.4.3 sequence标识符生成器  6.4.4 hilo标识符生成器  ...

    妙解Hibernate 3.x:叩响面向对象思想之门 PDF

    1. Hibernate基本概念:介绍Hibernate的核心理念,包括对象关系映射(ORM)的基本原理,以及它如何将Java对象与数据库表进行映射。 2. Hibernate配置:讲解如何配置Hibernate的XML配置文件,包括数据库连接、实体类...

    JPA和Hibernate的关系

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

Global site tag (gtag.js) - Google Analytics