`
sean2012
  • 浏览: 45915 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

Hibernate应用One2One

阅读更多
Hibernate应用One2One

1、一对一(Husband&Wife 单向)
Husband类
package com.sean.model.one2one;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;

/**
 * 一对一:丈夫对象
 * 
 * @author Sean 2013-2-26
 * 
 */
@Entity
public class Husband {

	private int id;
	private String name;
	private int age;
	private String work;

	@Id
	@GeneratedValue
	public int getId() {
		return id;
	}

	public String getName() {
		return name;
	}

	public int getAge() {
		return age;
	}

	public String getWork() {
		return work;
	}

	public void setId(int id) {
		this.id = id;
	}

	public void setName(String name) {
		this.name = name;
	}

	public void setAge(int age) {
		this.age = age;
	}

	public void setWork(String work) {
		this.work = work;
	}

}


Wife类
package com.sean.model.one2one;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.OneToOne;

/**
 * 一对一:丈夫对象
 * 
 * @author Sean 2013-2-26
 * 
 */
@Entity
public class Wife {

	private int id;
	private String name;
	private int age;
	private String work;
	private Husband dear;

	@OneToOne
	public Husband getDear() {
		return dear;
	}

	public void setDear(Husband dear) {
		this.dear = dear;
	}

	@Id
	@GeneratedValue
	public int getId() {
		return id;
	}

	public String getName() {
		return name;
	}

	public int getAge() {
		return age;
	}

	public String getWork() {
		return work;
	}

	public void setId(int id) {
		this.id = id;
	}

	public void setName(String name) {
		this.name = name;
	}

	public void setAge(int age) {
		this.age = age;
	}

	public void setWork(String work) {
		this.work = work;
	}

}


2、一对一(Husband&Wife 双向)
Husband类,Wife类不变
package com.sean.model.one2one;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.OneToOne;

/**
 * 一对一:丈夫对象
 * 
 * @author Sean 2013-2-26
 * 
 */
@Entity
public class Husband {

	private int id;
	private String name;
	private int age;
	private String work;
	private Wife dear;
	
	@OneToOne
	public Wife getDear() {
		return dear;
	}

	public void setDear(Wife dear) {
		this.dear = dear;
	}

	@Id
	@GeneratedValue
	public int getId() {
		return id;
	}

	public String getName() {
		return name;
	}

	public int getAge() {
		return age;
	}

	public String getWork() {
		return work;
	}

	public void setId(int id) {
		this.id = id;
	}

	public void setName(String name) {
		this.name = name;
	}

	public void setAge(int age) {
		this.age = age;
	}

	public void setWork(String work) {
		this.work = work;
	}

}


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.microsoft.sqlserver.jdbc.SQLServerDriver</property>
		<property name="connection.url">jdbc:sqlserver://localhost:1433;DatabaseName=test</property>
		<property name="connection.username">sa</property>
		<property name="connection.password">1234567890</property>

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

		<!-- SQL dialect -->
		<property name="dialect">org.hibernate.dialect.SQLServerDialect</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/sean/model/Student.hbm.xml" /> -->
		
		<!-- Annotation -->
		<mapping class="com.sean.model.one2one.Husband" />
		<mapping class="com.sean.model.one2one.Wife" />

	</session-factory>

</hibernate-configuration>


数据库对象一对一的关系,在代码中主要体现在Annotation注解标签上,因此只需要看@注解标签的地方就行了!初学者,如有错误,请您指正!
分享到:
评论

相关推荐

    hibernate中基于外键的one2one

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

    hibernate_One2One

    本文将深入探讨Hibernate中的One2One映射及其应用。 **一、一对一关联的概念** 一对一关联是指两个实体类之间存在一对一的关系,即每个实体实例对应另一个实体的唯一实例。在数据库层面,这通常通过主键外键约束...

    Hibernate应用例子one-to-one

    【Hibernate应用例子one-to-one】 Hibernate 是一个强大的Java对象关系映射(ORM)框架,它允许开发者以面向对象的方式操作数据库,从而简化了数据库应用程序的开发。在Hibernate中,"one-to-one"(一对一)关联是...

    hibernate中one2many映射

    在Java的持久化框架Hibernate中,One-to-Many映射是一种常见的关系映射方式,它表示一个实体(比如一个用户)可以与多个其他实体(比如用户的订单)进行关联。在这个场景下,"用户"是一方,称为"One","订单"是另...

    Hibernate one to one详细配置

    在Java的持久化框架Hibernate中,一对一(One-to-One)关联映射是常见的关系映射类型之一。它用于表示两个实体之间一对一的关联关系,即一个实体对应另一个实体的唯一实例。下面将详细介绍Hibernate中如何进行一对一...

    Hibernate学习要点_one2one 一对一主键双线关联

    在深入探讨Hibernate中的一对一(One-to-One)主键双线关联机制之前,我们首先需要理解几个核心概念:Hibernate框架、实体关系映射以及主键关联的基本原理。Hibernate是Java平台下的一款开源对象关系映射(ORM)框架...

    hibernate one-to-one 一对一唯一外键关联映射_单向 and 双向

    在本文中,我们将详细介绍Hibernate一对一唯一外键关联映射的概念、配置方法和实践应用。 一对一唯一外键关联映射的概念 在Hibernate中,一对一唯一外键关联映射是指两个实体之间的关联关系,其中一个实体作为外键...

    hibernate_many2one

    在深入探讨Hibernate中的many2one关系之前,我们首先需要理解Hibernate框架本身以及它在Java开发领域扮演的角色。Hibernate是一个开放源代码的对象关系映射(ORM)框架,它为Java应用程序提供了一种将对象模型与...

    Hibernate one-to-many / many-to-one关系映射

    "Hibernate one-to-many / many-to-one关系映射"是两个基本的关系类型,用于表示实体间的关联。在这个主题中,我们将深入探讨这两种关系映射的原理、配置和实际应用。 一、一对一(one-to-one)与一对多(one-to-...

    hibernate面试题2

    【hibernate面试题2】涉及了许多关于Hibernate框架的核心知识点,包括检索策略、SQL日志显示、缓存策略以及Hibernate与其他技术(如Spring和Struts)的整合。下面将逐一详细解析这些概念。 1. **Hibernate检索策略*...

    Hibernate one to one 实例

    **标题**: Hibernate 一对一实例 ...通过深入研究这些源码,开发者可以更好地理解Hibernate一对一映射的机制,以及如何在实际项目中应用。这个示例是一个很好的起点,可以帮助你掌握这一关键的Hibernate特性。

    hibernate 全面学习->hibernate 关联映射学习

    例如,`hibernate_one2one_ufk_1`和`hibernate_one2one_ufk_2`可能表示使用外键约束实现的一对一关系,而`hibernate_one2one_pk_1`和`hibernate_one2one_pk_2`可能表示通过主键共享实现的一对一关联。在这些示例中,...

    hibernate源码

    `hibernate_one2one_ufk_1`和`hibernate_one2one_pk_2`文件涉及到一对一关联的处理。Hibernate支持主键关联(Primary Key Join)和外键关联(Unique Foreign Key Join)两种方式。主键关联是通过两个实体共享同一...

    Hibernate 经典例子全

    在`hibernate_one2one_ufk_1`示例中,我们学习了如何配置和管理一对一的关系。这种关系在数据库中通常通过主键外键关联实现,Hibernate提供了多种方式来建立和维护这种关系,例如使用`@OneToOne`注解。 **五、懒...

    Hibernate之第3解之-hibernate_hibernate_many2one_1

    综上所述,理解并熟练运用Hibernate的Many-to-One关系映射,对于提升Java应用的数据处理效率和代码可维护性至关重要。在实际开发中,我们需要根据业务需求灵活选择配置,同时关注性能优化,以实现高效稳定的数据库...

    Hibernate框架jia包

    Hibernate通过`&lt;class&gt;`标签(XML映射)或@Entity注解(注解映射)定义实体类,`&lt;id&gt;`表示主键,`&lt;property&gt;`或@Basic对应字段,`&lt;many-to-one&gt;`或@ManyToOne处理一对多关系,`&lt;one-to-many&gt;`或@OneToMany处理多对...

    hibernate需要的2个DTD文档

    通过`&lt;hibernate-mapping&gt;`作为根元素,该DTD定义了一系列子元素,如`&lt;class&gt;`(代表一个Java类),`&lt;table&gt;`(对应的数据库表),`&lt;id&gt;`(主键),`&lt;property&gt;`(普通属性),以及`&lt;one-to-one&gt;`, `&lt;many-to-one&gt;`,...

    spring_hibernate_in one and find more than 1 rs

    标题“spring_hibernate_in one and find more than 1 rs”暗示了这个压缩包可能包含一个整合Spring和Hibernate的示例项目,重点在于在一个查询中找到多条结果。在这个项目中,Spring作为依赖注入和框架管理工具,而...

    hibernate一对多项目

    在项目实践中,为了更好地理解这个例子,你可以打开`day56_01hibernate one2many`目录,查看具体代码,包括实体类、映射文件、DAO层、Service层以及相关的测试类。通过分析这些代码,你将能更好地掌握Hibernate一对...

    Hibernate原理

    4. **跨数据库兼容性**:Hibernate支持多种数据库系统,包括Oracle、MySQL、PostgreSQL等,这使得基于Hibernate的应用程序具有良好的跨平台能力,能够在不同的数据库环境中运行,增强了应用的灵活性和可移植性。...

Global site tag (gtag.js) - Google Analytics