- 浏览: 499734 次
- 性别:
- 来自: 沈阳
文章分类
- 全部博客 (437)
- Windows设置 (2)
- oracle数据库 (39)
- bug--jsp (4)
- j2se (13)
- js (40)
- bug-tomcat不能启动程序 (1)
- Hibernate (29)
- eclipse (20)
- java (65)
- 设计模式 (6)
- bug (18)
- PL/SQL (11)
- 前台 (5)
- 杂谈 (25)
- UML (1)
- jdbc编程 (2)
- 技术调研 (1)
- 数据通信 (2)
- ios (1)
- servlet自学笔记 (10)
- tomcat (9)
- SQL学习笔记 (6)
- java工具 (1)
- 数据库设计 (4)
- javascript (10)
- jsp (11)
- struts (17)
- ajax (7)
- linix/Unix (6)
- 资源 (3)
- spring (14)
- 算法 (5)
- 计算机网络 (2)
- http (5)
- c++ (2)
- web应用 (3)
- jvm (5)
- java中的字符编码 (14)
- java代码库 (2)
- classloader (1)
- 读书笔记 (1)
- c (1)
- 开源软件 (1)
- svn (1)
- AOP (1)
- java序列化 (1)
- 多线程 (4)
- The legendary programmers (1)
- Apache http Server (1)
- html tag (3)
- struts1.X学习笔记 (5)
- buffalo (1)
- 自己收藏 (0)
- TOEFL(IBT) (1)
- 网络翻墙 (0)
- 编译原理 (1)
- 书籍推荐 (1)
- css (10)
- javaee环境搭建资料 (1)
- 开源工具 (1)
- 美国生活 (1)
- spring自学 (3)
- log4j (3)
- 算法与数据结构 (5)
- 病毒,插件处理大全 (1)
- flex (2)
- webservice (1)
- git (7)
- cs (1)
- html (4)
- javaee (6)
- 开车 (0)
- springmvc (3)
- 互联网架构 (2)
- intellij idea (18)
- maven (15)
- mongodb (2)
- nginx (1)
- react (3)
- java基础例子 (2)
- springboot (2)
- 培训 (5)
- mysql (3)
- 数据库 (3)
- 生活 (2)
- intellij (3)
- linux (2)
- os (3)
最新评论
-
潇洒天涯:
[color=blue][color=cyan] ...
oracle 通过 nvl( )函数sql 查询时为 空值 赋默认值 -
hekai1990:
受教了..
oracle中的varchar2
属性: 单向1——1关联: 需要在实体中提供setter、getter方法; 事实上单向的1——1和N——1配置非常相似;只需要在many-to-one元素增加 unique="true"属性,用于表示N的一端必须是唯一的即可!(既然N的一端加了唯一性约束那么就成了1——1了!) A、基于外键的单向1——1关联: 将无连接表的many-to-one元素增加 unique="true"属性,即可完成映射! eg: <!-- 用于映射1-1关联实体,指定关联实体类为Address B、有连接表的单向1——1关联: 将连接表的many-to-one元素增加 unique="true"属性,即可完成映射! eg: <!-- 映射连接表中参照关联实体的外键列 --> C、基于主键的单向1——1关联: eg: <class name="Person"> 双向1——1关联: 需要在两边实体类中增加引用关联实体的属性: A、 基于外键的双向1——1关联: 基于外键的1——1关联,外键可以存放在任意一端, eg: Preson.hbm.xml Address.hbm.xml <!-- 使用many-to-one映射1-1关联实体 B、基于主键的双向1——1关联: 主键映射策略,一端的主键生成器必须使用foreign策略,表名根据对方的主键生成策略来生成自己的主键本实体不能拥有自己的主键生成策略; eg: <!-- one-to-one元素映射关联属性 --> Address.hbm.xml <!-- Address持久化类--> C、有连接表的双向1——1关联: 用的比较少,只给出例子: eg: Preson.hbm.xml <!-- 使用join元素强制使用连接表 --> Address.hbm.xml <!-- 使用join元素强制使用连接表 -->
指定外键列名为addressId,并指定级联全部操作 -->
<many-to-one name="address" cascade="all"
unique="true" class="Address"
column="addressId"/>
<many-to-one name="address" cascade="all"
unique="true" class="Address"
column="addressId"/>
<!-- 映射标识属性personid -->
<id name="personid" column="addressid">
<!-- 基于主键关联时,主键生成策略是foreign,
表明根据关联类的主键来生成本表主键 -->
<generator class="foreign">
<!-- 指定引用关联实体的属性名 -->
<param name="property">address</param>
</generator>
</id>
<!-- 用于映射普通属性 -->
<property name="name" type="string"/>
<property name="age" type="int"/>
<!-- 下面映射基于主键的1-1关联 -->
<one-to-one name="address"/>
</class>
<!-- one-to-one元素映射关联属性,外键列在对方的表内
person-ref指定引用关联类的属性。
即:在address属性所属的Address类内,
必须有person属性的setter和getter方法 -->
<one-to-one name="address" property-ref="person"/>
unique="true"确定为1-1-->
<many-to-one name="person" unique="true"
column="person_id" not-null="true"/>
Preson.hbm.xml
<one-to-one name="address"/>
<class name="Address">
<!-- 映射标识属性addressid -->
<id name="addressid">
<!-- 指定foreign主键生成器策略-->
<generator class="foreign">
<!-- 指定根据主键将根据person属性引用的
关联实体的主键来生成-->
<param name="property">person</param>
</generator>
</id>
<!-- 映射普通属性addressdetail -->
<property name="addressdetail"/>
<!-- 用于映射关联属性 -->
<one-to-one name="person"/>
</class>
<join table="person_address" inverse="true">
<!-- 映射连接表中参照本实体主键的外键列 -->
<key column="person_id" unique="true"/>
<!-- 映射1-1关联实体 -->
<many-to-one name="address" class="Address"
unique="true" column="address_id"/>
</join>
<join table="person_address" optional="true">
<!-- 映射连接表中参照本实体主键的外键列 -->
<key column="address_id" unique="true"/>
<!-- 映射1-1关联实体 -->
<many-to-one name="person" class="Person"
unique="true" column="person_id" />
</join>
发表评论
-
Hibernate:Envers 审计
2018-09-17 23:57 516https://blog.csdn.net/Silen ... -
【转】Spring3.3 整合 Hibernate3、MyBatis3.2 配置多数据源/动态切换数据源 方法
2016-12-13 15:07 699http://www.cnblogs.com/hoojo ... -
【转】Spring3 整合Hibernate3.5 动态切换SessionFactory (切换数据库方言)
2016-12-13 15:05 764http://www.cnblogs.com/hoojo ... -
Hibernate中的三种对象状态:
2015-11-15 18:33 413Hibernate中的三种对象状态: 1.瞬时(tr ... -
【转】Hibernate过滤器使用窍门
2015-09-08 17:13 549Hibernate过滤器(filter)是全局有效的 ... -
【转】Hibernate left join(左连接)
2015-08-26 17:27 1972如果是内连接的多表查询可以不用join关键字,在where ... -
【转】Hibernate 所有缓存机制详解
2015-08-26 14:50 649hibernate提供的一级缓存 hibernate是一个 ... -
【转】Hibernate中session的clear(),flush(),evict()方法详解
2015-08-26 14:22 10411.Clear 方法 无论是Load 还是 Get ... -
object references an unsaved transient instance - save the transient instance be
2015-04-15 10:17 905在做hibernate保存时出现异常object refer ... -
【转】An association from the table * refers to an unmapped class: *
2015-04-08 10:13 953解决方法:class路径没写正确。有三个地方需要注意1、< ... -
【转】Hibernate中重要对象的详解
2012-12-13 14:18 668★→→SessionFactory (org.hibernat ... -
【转】很详细的spirng+struts+hibernate实例
2012-12-13 14:17 2371本文并不想介绍Struts,Spring,Hiber ... -
【转】Hibernate中id标签
2012-11-19 14:32 838核心提示:Hibernate中,id标签下的可选gener ... -
【转】hibernate动态创建表,修改表字段
2012-10-22 18:50 1048我们知道,hibernate的tool工具中有个包hbm2dd ... -
【转】hibernate many-to-one(多对一)及 cascade(级联)
2012-09-19 16:18 799Model public class User { // ... -
报错:使用hibernate字符串超长
2012-09-13 17:47 1574在使用varchar2类型时必须指定其长度(最小1字节 ... -
包名不同的同名类的hibernate冲突
2012-09-13 14:38 1211在实际开发中,在有类a.b.c.POClass和a.b.c ... -
【转】hibernate自定义类型部分接口详解--用户自定义类型
2012-08-31 16:48 0UserType public interface Us ... -
ORA-00904: "THIS_"."C_UNIT": 标识符无效
2012-08-02 13:40 1569hibernate could not resolve pro ... -
oracle 通过 nvl( )函数sql 查询时为 空值 赋默认值
2012-08-02 11:10 3435函数声明:nvl(col,val) 说明:当col为空时取va ...
相关推荐
在XML映射文件中,`Student.hbm.xml`包含了`<many-to-one>`元素,表示学生对象引用了一个班级对象,通过`classesid`列连接。而`Classes.hbm.xml`则使用了`<set>`和`<one-to-many>`元素,表示班级对象包含一个学生...
在Hibernate中,`one-to-many`关系是常见的实体间关系之一,表示一个实体可以与多个其他实体相关联。本文将深入探讨`Hibernate one-to-many`注解的使用和实现细节。 ### 一、`@OneToMany`注解概述 `@OneToMany`...
本文将深入探讨Hibernate中一对多(One-to-Many)关系的处理方式,特别是通过外键映射和inverse属性的应用场景。 #### 一对多关系概念 一对多关系在数据库设计中非常常见,它指的是一个实体可以与多个其他实体关联...
`<one-to-many>`元素指定了子实体的类型。 在C#代码中,`User`类会有一个`Orders`属性,它是`Order`类型的集合: ```csharp public class User { public virtual int Id { get; set; } // ...其他属性... ...
- `<one-to-one>`、`<many-to-one>`、`<one-to-many>`和`<many-to-many>`:分别用于一对一、一对多、多对一和多对多的关系映射,通过`<class>`元素的嵌套和属性如`inverse`、`cascade`等来控制关系的维护方式和级联...
1. **<hibernate-mapping>**:根元素,声明这是Hibernate映射文件。 2. ****:定义一个Java类与数据库表的映射。属性包括`name`(类的全限定名)和`table`(对应的数据库表名)。 3. ****:标识符(主键)映射,每...
### Hibernate映射文件基础结构 映射文件通常以`<!DOCTYPE hibernate-mapping>`开头,引用DTD(文档类型定义),确保文件遵循正确的格式。例如: ```xml <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/...
在Java的持久化框架Hibernate...综上所述,Hibernate中的One-to-Many映射涉及了映射文件的编写、Domain对象的设计、数据库配置以及CRUD操作。理解并熟练掌握这些内容,将有助于你在实际项目中高效地处理多对一的关系。
3. 在对应的映射文件中,使用`<set>`和`<one-to-many>`或`<many-to-one>`元素配置映射关系。 4. 如有必要,可以考虑将多对多关系转换为一对多,以优化性能和操作性。 理解并熟练掌握这些概念和实践,将有助于在使用...
例如,我们可以用`<id>`标签来标识主键,`<property>`标签映射普通字段,而`<one-to-one>`, `<many-to-one>`, `<one-to-many>`, 和 `<many-to-many>`则用于描述关联关系。 进一步,Hibernate提供了注解方式进行映射...
1. `<hibernate-mapping>`:根元素,定义映射文件的开始,通常会指定一个package属性,表示该文件中实体类所在的Java包。 2. `<class>`:表示一个Java类,包含`name`属性指定类名,`table`属性指定对应的数据库表。 ...
本文将详细探讨如何使用Hibernate映射集合属性List,以及如何让Hibernate自动创建对应的数据库表,无需手动编写SQL语句。 首先,我们需要理解Hibernate的映射机制。Hibernate通过ORM(对象关系映射)技术将Java对象...
在Java的持久化框架Hibernate中,"Many-to-One"关系是一种常见的关联映射类型,它表示一个实体(类)可以与多个其他实体实例相关联。在这个主题中,我们将深入探讨Hibernate如何处理这种关系,以及如何在实际编程中...
使用 `many-to-one` 元素在子类中定义对父类的引用,同时在父类中使用 `one-to-many` 元素声明子类的集合。外键通常位于子类的表中。例如,一个部门可以有多名员工,部门类可以定义一个 Employee 集合。 3. **多对...
例如,一个简单的映射文件可能包含`<class>`元素来指定Java类,`<id>`元素表示主键,`<property>`元素表示普通字段,而`<many-to-one>`或`<one-to-many>`元素则用于定义一对多或多对一的关系。 在实际开发中,理解...
在Hibernate中,我们可以利用`@OneToOne`注解或者在XML配置文件中使用`<one-to-one>`元素来实现这种关系的映射。 ### 主键双线关联的实现 在给出的部分内容中,我们可以看到一个具体的示例,展示了如何在Hibernate...
可以使用`@OneToOne`注解或在XML文件中定义`one-to-one`元素来实现。 **四、一对多(One-to-Many)映射** 在实体类中,使用`@OneToMany`注解或者在XML中配置`bag`、`list`、`set`等集合类型来表示一对多关系。可以...
在Java的持久化框架Hibernate中,`One-to-Many`映射关系是对象关系映射(ORM)中常见的一种关联类型。它表示一个实体("One"端)与多个其他实体("Many"端)之间的关系。例如,一个学生可以有多个课程,一个老师可以...
`<one-to-many>`元素 用于表示一对多的关联关系。例如一个班级有多个学生: - **`class`**:关联的类的全限定名,例如`com.example.Address`。 - **`not-found`**:当未找到关联实体时的行为,默认为`exception`...
这里的`<set>`元素定义了一个名为`phoneNumbers`的Set集合,对应的数据库表是`USER_PHONE`,`<key>`元素指定了外键列`USER_ID`,`<one-to-many>`元素则指定了关联的实体类`PhoneNumber`。 二、List集合映射 List...