`

hibernate 的 一对一的映射 annotation

 
阅读更多
hibernate 的 一对一的映射 
数据表的关系 有主键管理 有外键关联  下面的先是外键关联
先从小实验开始

第一:建立一个两个类
package com.nnl.www;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;

@Entity
public class Wife {
private int id;
private String name;
@Id
@GeneratedValue
public int getId() {
	return id;
}
public void setId(int id) {
	this.id = id;
}
public String getName() {
	return name;
}
public void setName(String name) {
	this.name = name;
}

}

---------------------------


package com.nnl.www;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.OneToOne;

@Entity
public class Hunsander {
private int id;
private String name;
private Wife wife;
@Id
@GeneratedValue
public int getId() {
	return id;
}
public String getName() {
	return name;
}
@OneToOne//指定关系
@JoinColumn(name="wifeId")//指定关联外键的名称
public Wife getWife() {
	return wife;
}
public void setId(int id) {
	this.id = id;
}
public void setName(String name) {
	this.name = name;
}
public void setWife(Wife wife) {
	this.wife = wife;
}

}
然后到hibernate.cfg.xml去设置


<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
        "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
        "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">

<hibernate-configuration>

    <session-factory>

        <!-- Database connection settings -->
        <property name="connection.driver_class">com.mysql.jdbc.Driver</property>
        <property name="connection.url">jdbc:mysql://localhost/hibernate</property>
        <property name="connection.username">root</property>
        <property name="connection.password"></property>

        <!-- JDBC connection pool (use the built-in) -->
       <!--  <property name="connection.pool_size">1</property> -->

        <!-- SQL dialect -->
        <property name="dialect">org.hibernate.dialect.MySQLDialect</property>

        <!-- Enable Hibernate's automatic session context management -->
         <property name="current_session_context_class">thread</property>

        <!-- Disable the second-level cache  -->
        <!--  <property name="cache.provider_class">org.hibernate.cache.NoCacheProvider</property>-->

        <!-- Echo all executed SQL to stdout -->
        <property name="show_sql">true</property>

        <!-- Drop and re-create the database schema on startup -->
        <property name="hbm2ddl.auto">update</property>

     <!-- <mapping resource="com/nnl/www/Student.hbm.xml"/> -->
     <mapping class="com.nnl.www.Hunsander"/>
      <mapping class="com.nnl.www.Wife"/>
      
    </session-factory>

</hibernate-configuration>
---------------------------
然后到Junit测试
package com.nnl.www;

import org.hibernate.cfg.AnnotationConfiguration;
import org.hibernate.tool.hbm2ddl.SchemaExport;
import org.junit.Test;


public class TestOneToOne {
@Test
public void testOneToOne(){
	new SchemaExport(new AnnotationConfiguration().configure()).create(false, true);
}
}







分享到:
评论

相关推荐

    详解Hibernate一对一映射配置

    下面我们将详细讲解如何在Hibernate中进行一对一映射的配置。 **一、XML文件配置** 1. **主键关联(Primary Key Join)** 主键关联是最简单的一对一映射方式,两个实体类共享同一个主键。在XML配置文件中,我们...

    hibernate annotation hibernate3

    这些注解分别表示一对多、多对一、一对一和多对多的关系。例如,表示用户与角色的一对多关系: ```java @ManyToOne @JoinColumn(name="ROLE_ID") private Role role; ``` 四、继承策略注解 1. `@Inheritance`...

    Hibernate一对多、一对一、多对多映射之Annotation篇.doc

    有两类一对一映射:外键关联和主键关联。 1. **外键关联**: - 在一方实体中,增加一个带有`@OneToOne`和`@JoinColumn(unique=true)`的属性,表示外键约束。 ```java @OneToOne(mappedBy="address") private ...

    Hibernate_Annotation关联映射

    1.共享主键的一对一关联映射: @Entity @Table(name="Test_Body") public class Body { private Integer id; private Heart heart; @Id public Integer getId() { return id; } public void setId(Integer id...

    Hibernate Annotation 共享主键一对一双向关联

    本文将详细讲解“Hibernate Annotation 中的共享主键一对一双向关联”。 首先,我们需要理解什么是共享主键(Shared Primary Key)。在一对一的关联关系中,如果两个实体共享同一个主键,那么这种关联被称为共享...

    最全的Hibernate Annotation API文档

    1. 一对一(OneToOne):使用`@OneToOne`注解表示两个实体之间一对一的关系。 2. 一对多(OneToMany):使用`@OneToMany`注解表示一个实体可以对应多个其他实体。 3. 多对一(ManyToOne):使用`@ManyToOne`注解表示...

    hibernate annotation 中文文档

    - `@OneToOne`, `@OneToMany`, `@ManyToOne`, `@ManyToMany`: 用于处理各种关联关系,如一对一、一对多、多对一、多对多。 3. **继承与多态** - `@Inheritance`: 定义继承策略,如SINGLE_TABLE(单表)、JOINED...

    Hibernate Annotation 中文文档

    在这个例子中,`User`类代表了`users`表,`id`是主键,`username`是表的一个列,`role`是与`Role`类的一对多关联。 **4. 注解的优势** - **简洁性**:注解使得ORM配置与实体类代码紧密集成,减少了XML配置文件的...

    Hibernate Annotation库

    例如,`@ManyToOne`表示一对多的关系,`@OneToMany`则表示多对一的关系,它们可以方便地处理复杂的数据库关系。 3. **ejb3-persistence.jar**: 这个jar包是Java EE企业版中的一部分,包含了JSR 303(Java ...

    Hibernate distribution and annotation

    6. **@OneToMany, @ManyToOne, @OneToOne, @ManyToMany**: 用于定义关联关系,如一对一、一对多、多对多等。 7. **@Temporal**: 用于日期和时间字段的特殊处理,如TIMESTAMP、DATE或TIME。 8. **@Inheritance**...

    hibernate-Annotation.jar

    - `@OneToOne`:一对一关联,表示两个实体类之间存在一对一的关系。 - `@ManyToOne`:多对一关联,一个实体类的属性对应另一个实体类的多个实例。 - `@OneToMany`:一对多关联,一个实体类的实例对应另一个实体类...

    Hibernate继承映射(annotation)

    **标题:“Hibernate继承映射(Annotation)详解”** 在Java持久化框架Hibernate中,继承映射是一种关键特性,它允许开发者将对象模型的继承结构映射到数据库的表结构。在传统的面向对象编程中,继承是实现代码复用和...

    hibernate-annotation

    6. `@OneToMany`, `@ManyToOne`, `@OneToOne`, `@ManyToMany`:这些注解用于描述多对一、一对多、一对一和多对多的关联关系。例如,一个用户可以有多个订单: ```java @Entity public class User { @Id private ...

    Hibernate Annotation入门

    而Hibernate Annotation是Hibernate的一个重要特性,它通过在Java类和字段上添加注解来简化数据库表和实体类之间的映射配置。这篇博文将带你了解如何使用Hibernate Annotation进行开发。 首先,我们需要理解Java...

    Hibernate Annotation 学习笔记

    而Hibernate Annotation则是Hibernate提供的一种基于注解的实体映射方式,它极大地简化了传统XML配置文件的繁琐工作,使得开发过程更加简洁高效。本文将通过一个实际操作的实例,逐步介绍Hibernate Annotation的基础...

    hibernate annotation api chm文件

    - `@OneToMany`, `@ManyToOne`, `@OneToOne`, `@ManyToMany`: 定义不同类型的关联关系,如一对一、一对多、多对一和多对多。 3. **实体类的注解示例** 一个简单的User实体类可能如下所示: ```java @Entity @...

    Hibernate组件映射(annotation/xml)

    1. 数据库设计简化:组件映射可以避免创建过多的一对多或一对一关联表,简化数据库结构。 2. 代码复用:组件类可以在多个实体中重复使用,提高代码的可重用性。 3. 更强的类型安全:相比直接使用基本类型或字符串,...

    HibernateAnnotation

    这段代码定义了 `MedicalHistory` 类与 `Person` 类之间的一对一关系,并指定了外键为 `person_id`。 通过上述介绍,我们可以看到HibernateAnnotation技术不仅简化了配置过程,而且提供了一种更加灵活的方式来管理...

    hibernate-annotation-helloword

    **hibernate-annotation-helloworld** 是一个基于Hibernate框架,使用注解方式实现的Hello World示例项目。在Java世界中,Hibernate是一个流行的持久层框架,它极大地简化了数据库操作,尤其是在对象关系映射(ORM)...

Global site tag (gtag.js) - Google Analytics