`

hibernate 基于外键的1-1

 
阅读更多

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基于外键的一对多单向关联

    “Hibernate基于外键的一对多单向关联”这个标题指的是在Java持久化框架Hibernate中,如何通过外键实现一个实体类(如订单)与另一个实体类(如商品)之间的一对多关系,并且这种关联是单向的,即从订单端可以访问到...

    hibernate中基于外键的one2one

    总之,Hibernate中的基于外键的One-to-One映射是一种常用的数据关联技术,理解和熟练应用这一概念对于Java开发者来说至关重要。通过细致的配置和合理的实体设计,我们可以构建出高效、稳定的数据库应用程序。

    Hibernate Annotation 基于外键的一对多双向关联

    本文将深入探讨如何使用Hibernate注解实现基于外键的一对多双向关联。我们将通过具体实例来解析这个主题,并结合源码分析其工作原理。 首先,我们要明白一对多关联意味着一个实体可以拥有多个关联的实体。在数据库...

    hibernate基于主外键的一对多/多对一关联

    "hibernate基于主外键的一对多/多对一关联"是Hibernate中两个核心的概念,用于描述实体之间的关系。下面将详细阐述这两个关联类型及其实现方式。 一对多关联是指在数据库中,一个表的记录可以与另一个表中的多个...

    Hibernate Annotation 基于外键的单向多对一关联

    本篇文章将深入探讨如何使用Hibernate Annotation来实现基于外键的单向多对一关联。 在关系型数据库中,多对一关联是一种常见的关系类型,意味着一个实体(如表)可以与另一个实体有多条记录关联,而另一个实体只能...

    hibernate-extensions-2.1.3.zip ,middlegen for hibernate

    1. Hibernate扩展: Hibernate扩展是开发者社区为增加Hibernate功能而创建的一系列插件或工具。`hibernate-extensions-2.1.3.zip`可能包含了如以下的扩展: - Criteria查询增强:允许更复杂的动态查询构建,超越了...

    hibernate-annotations-3.4.0.GA

    而Hibernate Annotations是Hibernate框架的一个重要组成部分,它引入了基于注解的元数据,使得代码更加简洁、易读。本篇将详细探讨Hibernate Annotations 3.4.0.GA版本中的核心概念、特性以及实际应用。 一、...

    hibernate-orm-master.zip

    Hibernate是一个开源的、基于Java的持久化框架,它提供了一种在Java应用和关系数据库之间建立映射的方法,使得开发者可以通过对象模型进行数据库操作,降低了数据库访问的复杂性。它的核心组件包括:Session、...

    hibernate-annotations-3.4.0.GA and hibernate-entitymanager-3.4.0.GA

    首先,`hibernate-annotations`是Hibernate提供的一套基于Java注解的元数据定义方式。在3.4.0.GA版本中,它使得开发者无需依赖XML配置文件,就能通过在实体类上添加特定注解来描述数据库表结构和字段属性。这提高了...

    hibernate 双向一对一基于外键的关联映射

    在本案例中,我们将探讨如何在Hibernate中实现基于外键的双向一对一关联映射。 首先,我们来看一下双向一对一关联的基本概念。双向一对一关联意味着两个实体类A和B,它们之间存在一对一的关系,并且A能访问B,B也能...

    hibernate-annotations-3.4.0.GA.rar

    Hibernate注解是基于Java 5引入的元数据机制,允许在源代码中嵌入元数据信息,用于描述对象如何映射到数据库。例如,`@Entity`注解表示一个类作为数据库中的表,`@Table`定义表名,`@Id`标记主键字段。 2. **实体...

    基于注解的关联关系Hibernate

    在这个“基于注解的关联关系Hibernate”的主题中,我们将深入探讨如何使用Hibernate的注解来配置不同类型的关联关系,包括一对一(One-to-One)、一对多(One-to-Many)、多对一(Many-to-One)和多对多(Many-to-...

    hibernate-reference-3.1.1.pdf

    从单向基于集合的关联映射开始,文档展示了如何在Hibernate中表示一对多的关系。随后,通过双向关联的处理,揭示了如何维护实体间更复杂的关系。此外,文档还详细阐述了值集合和嵌套关联的管理,以及如何在这些复杂...

    hibernate-annotations-3.1beta6

    Hibernate注解是基于JPA(Java Persistence API)的,它提供了一系列的注解,如`@Entity`、`@Table`、`@Id`等,用于定义实体类与数据库表之间的映射关系。例如,`@Entity`注解标识一个类为持久化实体,而`@Table`则...

    Hibernate基于连接表的一对多单向关联

    标题 "Hibernate基于连接表的一对多单向关联" 涉及的是数据库对象关系映射(ORM)框架Hibernate中的一个重要概念。在Java开发中,Hibernate是广泛使用的工具,它允许开发者将Java类与数据库表进行映射,简化了数据...

    Hibernte使用及配置说明

    2. **优秀的 ORM 实现**:作为一个基于 JDBC 的主流持久化框架,Hibernate 在 ORM 领域表现突出。 3. **高性能**:由于其轻量级框架的设计,Hibernate 具有很好的性能。 4. **出色的映射灵活性**:Hibernate 支持从...

    主外键的配置

    1. **单主键、无外键配置** 在这种配置中,一个实体类只有一个主键属性。例如,`BadCodeBean`实体只有一个`badCode`字段作为主键。配置中使用`&lt;id&gt;`标签定义主键,`&lt;generator&gt;`标签指定主键生成策略。在这个例子中...

    hibernate一对一的两种实现方式

    本篇文章将详细探讨Hibernate中一对一关联的两种实现方式:基于主键关联和基于外键关联,并通过源码分析及实际应用示例来阐述它们的工作原理和配置细节。 一、基于主键关联 1.1 基本概念 基于主键关联是指两个实体...

    hibernate(基于MVC的服务器架构技术)

    1. **Hibernate 简介** Hibernate 是一款开源的ORM框架,由 Gavin King 创建。它允许开发者将Java对象与关系数据库中的记录进行映射,从而避免了直接使用SQL语句,提高了开发效率。通过Hibernate,我们可以使用对象...

Global site tag (gtag.js) - Google Analytics