`
finally_m
  • 浏览: 69350 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Hibernate 一对一共享主键关联

阅读更多

一 表结构:

CREATE TABLE `user` (
  `userid` int(11) NOT NULL auto_increment,
  `username` varchar(255) NOT NULL default '',
  `age` int(2) default NULL,
  PRIMARY KEY  (`userid`)
) ENGINE=InnoDB DEFAULT CHARSET=gbk;


CREATE TABLE `address` (
  `aid` int(11) NOT NULL default '0',
  `address` varchar(255) NOT NULL default '',
  PRIMARY KEY  (`aid`)
) ENGINE=InnoDB DEFAULT CHARSET=gbk;

 

二 POJO与映射文件:

public class User {
	private Integer userid;
	private String username;
	private Integer age;
	private Address address;
//getters setters method...
}

public class Address {
	private Integer aid;
	private String address;
	private User user;
//getters setters method...
}

 

User.hbm.xml

<hibernate-mapping>
	<class name="com.pojo.User" table="user" dynamic-insert="true"
		dynamic-update="true">
		<id name="userid" type="integer">
			<column name="userid" sql-type="int" length="11"></column>
			<generator class="native"></generator>
		</id>
		<property name="username" type="string">
			<column name="username" sql-type="varchar" length="255"
				not-null="true">
			</column>
		</property>
		<property name="age" type="integer">
			<column name="age" sql-type="int" length="2"></column>
		</property>
		<one-to-one name="address" class="com.pojo.Address"
			cascade="all">
		</one-to-one>
	</class>
</hibernate-mapping>

 

Address.hbm.xml

<hibernate-mapping>
	<class name="com.pojo.Address" table="address" dynamic-insert="true" dynamic-update="true">
		<id name="aid" type="integer">
			<column name="aid" sql-type="int" length="11"></column>
			<generator class="foreign">
				<param name="property">user</param>
			</generator>
		</id>
		<property name="address" type="string">
			<column name="address" sql-type="varchar" length="255"></column>
		</property>
		<one-to-one name="user" class="com.pojo.User"
			constrained="true" cascade="all">
		</one-to-one>
	</class>
</hibernate-mapping>

 

分享到:
评论

相关推荐

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

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

    hibernate使用主键关联的一对一关系

    在这个场景中,“hibernate使用主键关联的一对一关系”指的是通过共享主键来实现两个实体类之间的这种一对一绑定。下面我们将深入探讨这一主题。 首先,我们需要理解一对一关系的概念。在数据库中,一对一关系意味...

    Hibernate一对一主键关联映射(双向关联)

    标题"Hibernate一对一主键关联映射(双向关联)"中的"主键关联"指的是两个实体通过共享相同的主键来建立关联。"双向关联"则意味着在两个实体类中,都可以直接访问到对方的实例,即在实体A中有一个对实体B的引用,...

    hibernate一对一主键关联映射(单项关联)

    本篇将深入探讨在Hibernate中实现一对一主键关联映射的单项关联方式。这种关联意味着两个实体类共享相同的主键,即一个实体类的一个实例对应另一个实体类的唯一实例。 首先,我们要明确一对一主键关联映射的基本...

    Hibernate ORM - 一对一主键关联关系

    综上所述,Hibernate ORM 的一对一主键关联关系是通过共享主键或外键约束来实现两个实体间的唯一对应。在实际应用中,开发者需要根据需求选择合适的关联方式,并注意关联带来的性能影响。通过理解并熟练掌握这些配置...

    Hibernate一对一主键关联映射(单向关联)

    需要注意的是,虽然一对一主键关联映射可以通过共享主键实现,但这也意味着如果一方被删除,另一方也会被级联删除,除非显式配置了`cascade`属性。此外,对于双向关联,需要在双方都定义`@OneToOne`注解,并通过`...

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

    在Java持久化框架Hibernate中,双向一对一(OneToOne)基于主键的关联映射是一种常见的对象关系映射(ORM)技术。这种映射方式允许两个实体类之间建立一对一的关联,且关联是通过主键来实现的。接下来,我们将深入...

    Hibernate 一对一关联映射(主键关联VS唯一外键关联)

    主键关联是通过让两个实体的主键字段共享同一个值来建立一对一的关系。在Hibernate中,这通常通过在映射文件或注解中设置`@OneToOne`和`@PrimaryKeyJoinColumn`实现。 2. 实现方式: - XML配置:在实体类的映射...

    hibernate一对一主键关联(注解版)

    在Hibernate中,一对一的关联可以通过共享主键来实现,即两个表共用一个主键字段。 1. **注解配置**: Hibernate使用注解来声明实体类和它们之间的关系。对于一对一的主键关联,我们需要在两个实体类中都添加`@...

    hibernate一对一主键关联代码实现

    在Java的持久化框架Hibernate中,一对一(One-to-One)关联是常见的关系映射类型,它用于表示两个实体之间一对一的依赖关系。本教程将详细解释如何通过代码实现Hibernate的一对一主键关联。 首先,我们需要理解一对...

    Hibernate教程07_关系映射之一对一双向主键关联

    在本教程中,我们将深入探讨Hibernate中的一个关键概念——关系映射,特别是“一对一双向主键关联”。这种关联类型是数据库设计中的常见模式,它允许两个实体类之间通过共享相同的主键来建立关联。在Java应用中,...

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

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

    hibernate主键实现一对一单向关联关系源码

    1. **共享主键实现一对一关联** 在一对一关联中,如果两个实体类共享同一个主键,我们可以在其中一个实体类中定义另一个实体类的属性,这样就形成了一个单向关联。例如,假设我们有两个实体类:`Person` 和 `...

    Hibernate一对一主键映射

    在这个实例中,我们将深入探讨Hibernate一对一主键映射的概念、配置以及如何通过源代码和测试程序进行实践。 1. **一对一关系理解**: 一对一关系指的是一个实体类中的记录对应另一个实体类中的唯一一条记录。例如...

    hibernate主键一对一关联映射代码示例

    在Java的持久化框架Hibernate中,一对一(OneToOne)关联映射是一种常见的关系映射方式,用于表示两个实体之间一对一的关联关系。本示例将深入讲解如何在Hibernate中实现主键一对一关联映射,并通过代码示例进行解析...

    Hibernate教程06_关系映射之一对一单向主键关联

    **标题详解:** "Hibernate教程06_关系映射之一对一单向主键关联" 在Hibernate框架中,关系映射是将数据库中的表关系映射到对象模型上的过程。本教程聚焦于一对一(One-to-One)单向主键关联,这是一种特定类型的...

    Hibernate关联映射

    一对一主键关联是通过共享主键实现的,这意味着两个实体类共用同一个主键。在这种情况下,被引用的实体类(如 Address)不再有自己的独立主键生成策略,而是依赖于引用它的实体类(如 Person)生成主键。在 ...

Global site tag (gtag.js) - Google Analytics