public class Wife {
private Long id;
private String name;
private Husband husband;
public class Husband {
private Long id;
private String name;
private Wife wife;
外键保存在husband的表中
<?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="hiber.Wife" table="wife">
<id name="id" type="java.lang.Long">
<column name="ID" scale="0" />
<!-- The generator-class attribute of @hibernate.id is deprecated, use the @hibernate.generator tag instead -->
<generator class="increment">
</generator>
</id>
<property name="name" type="java.lang.String" >
<column name="name" length="255"></column>
</property>
<one-to-one name="husband" property-ref="wife"></one-to-one>
</class>
<class name="hiber.Husband" table="Husband">
<id name="id" type="java.lang.Long">
<column name="ID" scale="0" />
<!-- The generator-class attribute of @hibernate.id is deprecated, use the @hibernate.generator tag instead -->
<generator class="increment">
</generator>
</id>
<property name="name" type="java.lang.String" >
<column name="name" length="255"></column>
</property>
<many-to-one name="wife" class="hiber.Wife" lazy="false" unique="true" not-null="true" cascade="all" >
<column name="wife_id" scale="0" />
</many-to-one>
</class>
</hibernate-mapping>
测试:
Wife wife = new Wife();
Husband husband = new Husband();
wife.setName("wife777");
husband.setName("husband777");
husband.setWife(wife);
// wife.setHusband(husband);
sph.save(wife);
sph.save(husband);
//进行访问
Wife wife1 = sph.get(4l);
System.out.println(wife1.getName()+":"+wife1.getHusband().getName());
Husband husband1 = sph.getHusband(3l);
System.out.println(husband1.getName()+":"+husband1.getWife().getName());
分享到:
相关推荐
“Hibernate基于外键的一对多单向关联”这个标题指的是在Java持久化框架Hibernate中,如何通过外键实现一个实体类(如订单)与另一个实体类(如商品)之间的一对多关系,并且这种关联是单向的,即从订单端可以访问到...
总之,Hibernate中的基于外键的One-to-One映射是一种常用的数据关联技术,理解和熟练应用这一概念对于Java开发者来说至关重要。通过细致的配置和合理的实体设计,我们可以构建出高效、稳定的数据库应用程序。
本文将深入探讨如何使用Hibernate注解实现基于外键的一对多双向关联。我们将通过具体实例来解析这个主题,并结合源码分析其工作原理。 首先,我们要明白一对多关联意味着一个实体可以拥有多个关联的实体。在数据库...
"hibernate基于主外键的一对多/多对一关联"是Hibernate中两个核心的概念,用于描述实体之间的关系。下面将详细阐述这两个关联类型及其实现方式。 一对多关联是指在数据库中,一个表的记录可以与另一个表中的多个...
本篇文章将深入探讨如何使用Hibernate Annotation来实现基于外键的单向多对一关联。 在关系型数据库中,多对一关联是一种常见的关系类型,意味着一个实体(如表)可以与另一个实体有多条记录关联,而另一个实体只能...
1. Hibernate扩展: Hibernate扩展是开发者社区为增加Hibernate功能而创建的一系列插件或工具。`hibernate-extensions-2.1.3.zip`可能包含了如以下的扩展: - Criteria查询增强:允许更复杂的动态查询构建,超越了...
而Hibernate Annotations是Hibernate框架的一个重要组成部分,它引入了基于注解的元数据,使得代码更加简洁、易读。本篇将详细探讨Hibernate Annotations 3.4.0.GA版本中的核心概念、特性以及实际应用。 一、...
Hibernate是一个开源的、基于Java的持久化框架,它提供了一种在Java应用和关系数据库之间建立映射的方法,使得开发者可以通过对象模型进行数据库操作,降低了数据库访问的复杂性。它的核心组件包括:Session、...
首先,`hibernate-annotations`是Hibernate提供的一套基于Java注解的元数据定义方式。在3.4.0.GA版本中,它使得开发者无需依赖XML配置文件,就能通过在实体类上添加特定注解来描述数据库表结构和字段属性。这提高了...
在本案例中,我们将探讨如何在Hibernate中实现基于外键的双向一对一关联映射。 首先,我们来看一下双向一对一关联的基本概念。双向一对一关联意味着两个实体类A和B,它们之间存在一对一的关系,并且A能访问B,B也能...
Hibernate注解是基于Java 5引入的元数据机制,允许在源代码中嵌入元数据信息,用于描述对象如何映射到数据库。例如,`@Entity`注解表示一个类作为数据库中的表,`@Table`定义表名,`@Id`标记主键字段。 2. **实体...
在这个“基于注解的关联关系Hibernate”的主题中,我们将深入探讨如何使用Hibernate的注解来配置不同类型的关联关系,包括一对一(One-to-One)、一对多(One-to-Many)、多对一(Many-to-One)和多对多(Many-to-...
从单向基于集合的关联映射开始,文档展示了如何在Hibernate中表示一对多的关系。随后,通过双向关联的处理,揭示了如何维护实体间更复杂的关系。此外,文档还详细阐述了值集合和嵌套关联的管理,以及如何在这些复杂...
Hibernate注解是基于JPA(Java Persistence API)的,它提供了一系列的注解,如`@Entity`、`@Table`、`@Id`等,用于定义实体类与数据库表之间的映射关系。例如,`@Entity`注解标识一个类为持久化实体,而`@Table`则...
标题 "Hibernate基于连接表的一对多单向关联" 涉及的是数据库对象关系映射(ORM)框架Hibernate中的一个重要概念。在Java开发中,Hibernate是广泛使用的工具,它允许开发者将Java类与数据库表进行映射,简化了数据...
2. **优秀的 ORM 实现**:作为一个基于 JDBC 的主流持久化框架,Hibernate 在 ORM 领域表现突出。 3. **高性能**:由于其轻量级框架的设计,Hibernate 具有很好的性能。 4. **出色的映射灵活性**:Hibernate 支持从...
1. **单主键、无外键配置** 在这种配置中,一个实体类只有一个主键属性。例如,`BadCodeBean`实体只有一个`badCode`字段作为主键。配置中使用`<id>`标签定义主键,`<generator>`标签指定主键生成策略。在这个例子中...
本篇文章将详细探讨Hibernate中一对一关联的两种实现方式:基于主键关联和基于外键关联,并通过源码分析及实际应用示例来阐述它们的工作原理和配置细节。 一、基于主键关联 1.1 基本概念 基于主键关联是指两个实体...
1. **Hibernate 简介** Hibernate 是一款开源的ORM框架,由 Gavin King 创建。它允许开发者将Java对象与关系数据库中的记录进行映射,从而避免了直接使用SQL语句,提高了开发效率。通过Hibernate,我们可以使用对象...