主键关联不需要额外的表字段;如果两行是通过这种一对一关系相关联的,那么这两行就共享同样的主关键字值。
所以如果你希望两个对象通过主键一对一关联,你必须确认它们被赋予同样的标识值!
public class User {
private String id;
private String userName;
private IDCard card;
/**
* @return the card
*/
public IDCard getCard() {
return card;
}
/**
* @param card the card to set
*/
public void setCard(IDCard card) {
this.card = card;
}
/**
* @return the id
*/
public String getId() {
return id;
}
/**
* @param id the id to set
*/
public void setId(String id) {
this.id = id;
}
/**
* @return the userName
*/
public String getUserName() {
return userName;
}
/**
* @param userName the userName to set
*/
public void setUserName(String userName) {
this.userName = userName;
}
}
public class IDCard {
private String id;
private String cardNo;
private User user;
/**
* @return the id
*/
public String getId() {
return id;
}
/**
* @param id the id to set
*/
public void setId(String id) {
this.id = id;
}
/**
* @return the cardNo
*/
public String getCardNo() {
return cardNo;
}
/**
* @param cardNo the cardNo to set
*/
public void setCardNo(String cardNo) {
this.cardNo = cardNo;
}
/**
* @return the user
*/
public User getUser() {
return user;
}
/**
* @param user the user to set
*/
public void setUser(User user) {
this.user = user;
}
}
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping >
<class name="com.acca.entity.User" table="t_user">
<id name="id">
<generator class="uuid"/>
</id>
<property name="userName"/>
<one-to-one name="card" class="com.acca.entity.IDCard" cascade="all"/>
</class>
</hibernate-mapping>
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping >
<class name="com.acca.entity.IDCard" table="t_card">
<id name="id">
<generator class="foreign">
<param name="property">user</param>
</generator>
</id>
<property name="cardNo"/>
<one-to-one name="user" class="com.acca.entity.User"></one-to-one>
</class>
</hibernate-mapping>
分享到:
相关推荐
在本教程中,我们将深入探讨Hibernate中的一个关键概念——关系映射,特别是“一对一双向主键关联”。这种关联类型是数据库设计中的常见模式,它允许两个实体类之间通过共享相同的主键来建立关联。在Java应用中,...
在Java的持久化框架Hibernate中,一对一(One-to-One)关联映射是一种常见的关系数据库模型映射方式。这种关联通常发生在两个实体之间,且每个实体都只有一个对应的实例。本篇文章将详细探讨双向一对一主键关联映射...
4. **配置一对一关系映射:** 在Hibernate中,可以使用`@OneToOne`注解来声明一对一关联,并通过`@PrimaryKeyJoinColumn`注解指定主键关联的列。在拥有端实体中,可以直接使用这个注解,而在无拥端则不需要任何额外...
在Java的持久化框架Hibernate中,关系映射是数据库对象之间的关联方式,它允许我们将复杂的数据库结构映射到Java对象上。"Hibernate one-to-many / many-to-one关系映射"是两个基本的关系类型,用于表示实体间的关联...
在Java开发中,Hibernate是一个非常重要的对象关系映射(ORM)框架,它允许开发者使用面向对象的方式来操作数据库,极大地简化了数据库操作。本教程将详细讲解Hibernate中的关联关系映射配置,帮助你理解和掌握如何...
在Java的持久化框架Hibernate中,一对一(OneToOne)关系是一种常见的对象关系映射(ORM)配置,用于表示两个实体类之间的一种唯一关联。在这个场景中,“hibernate使用主键关联的一对一关系”指的是通过共享主键来...
在Java的持久化框架Hibernate中,一对一(One-to-One)关联映射是一种常见的关系映射方式,用于表示两个实体之间一对一的对应关系。本篇主要探讨的是基于主键(Primary Key)的双向关联映射,这在实际项目中非常常见...
在Java世界中,Hibernate是一个非常流行的ORM(对象关系映射)框架,它允许开发者将数据库操作转换为面向对象的方式,从而简化了数据访问层的编程。"hibernate关联关系映射"是Hibernate的核心概念之一,它定义了如何...
Hibernate ORM 是一个强大的Java对象关系映射...在实际应用中,开发者需要根据需求选择合适的关联方式,并注意关联带来的性能影响。通过理解并熟练掌握这些配置,可以更好地利用Hibernate ORM 提升开发效率和代码质量。
在Java的持久化框架Hibernate中,一对一(One-to-One)关联映射是常见的关系数据库模型。本篇文章将深入探讨两种实现一对一关联的方式:主键关联(Primary Key Join)和唯一外键关联(ForeignKey Join),并结合源码...
本篇将深入探讨在Hibernate中实现一对一主键关联映射的单项关联方式。这种关联意味着两个实体类共享相同的主键,即一个实体类的一个实例对应另一个实体类的唯一实例。 首先,我们要明确一对一主键关联映射的基本...
在Java的持久化框架Hibernate中,一对一(One-to-One)关联映射是常见的关系映射方式之一,尤其在处理两个实体之间存在唯一对应关系时非常有用。本篇将重点讲解如何实现一对一主键关联映射的单向关联,并通过一个...
在Java的持久化框架Hibernate中,一对一(One-to-One)关联是对象关系映射(ORM)中的一个重要概念,它用于表示两个实体之间一对一的映射关系。本篇将深入探讨Hibernate 3.2中的一对一关系,以及如何在实际项目中...
Hibernate提供了一种在Java应用程序中管理关系数据库的方式,通过使用XML或注解来定义对象-关系映射,使得开发者可以避免编写大量的JDBC代码,从而提高开发效率。 【压缩包子文件的文件名称列表】:Hibernate_...
Hibernate是Java平台上的一款开源对象关系映射(ORM)框架,它允许开发者用面向对象的方式处理数据库操作。在SSH(Spring、Struts、Hibernate)框架中,Hibernate作为持久层的解决方案,极大地简化了数据库操作的...
在Java的持久化框架Hibernate中,一对一(One-to-One)映射是一种常见关系映射,用于表示两个实体之间一对一的关联。本篇文章将详细探讨Hibernate中实现一对一映射的两种方式,并结合源码分析其原理。 一、主键外键...
在Hibernate中,注解用于将Java类与数据库表关联,以及将类的属性与表的列对应起来,从而实现了对象关系映射(ORM)。 1. **实体类注解**: - `@Entity`:标记一个Java类为数据库中的一个实体表,相当于传统的...