`

关联关系-动手-一对一单向主键(不重要)

阅读更多
/**
 * Person类中有一个属性指向另外一个实体,但是另外一个实体没有属性指向Person,所以单向
 * 由于Person表中是主键属性关联,所以主键,它的主键id是根据Address的主键id而来,因此不能使用代理主键
 * @author Macrotea
 *
 */
public class Person {
	private int id;
	private String name;
	private Address address;
	
	public Address getAddress() {
		return address;
	}
	public int getId() {
		return id;
	}
	public String getName() {
		return name;
	}
	public void setAddress(Address address) {
		this.address = address;
	}
	public void setId(int id) {
		this.id = id;
	}
	public void setName(String name) {
		this.name = name;
	}
	@Override
	public String toString() {
		return "Person [id=" + id + ", name=" + name + "]";
	}
}


public class Address {
	private int id;
	private String city;
	public String getCity() {
		return city;
	}
	public int getId() {
		return id;
	}
	public void setCity(String city) {
		this.city = city;
	}
	public void setId(int id) {
		this.id = id;
	}
	@Override
	public String toString() {
		return "Address [city=" + city + ", id=" + id + "]";
	}
}


	private static void prepare_data() {

		Session session = HibernateSessionFactory.getSession();
		Transaction transaction = session.beginTransaction();
		transaction.begin();

		Address addr = new Address();
		addr.setCity("广州");

		Person p = new Person();
		p.setName("macrotea");
		p.setAddress(addr);

		session.save(addr);
		session.save(p);

		transaction.commit();
		session.close();
	}

 

 

 

<hibernate-mapping package="com.macrotea.hb.model">
	<class name="Person">
		<id name="id">
            <!--基于主键关联,主键生成策略是foreign,说明根据关联类生成主键-->
            <generator class="foreign">
                <!--关联类的属性名-->
                <param name="property">address</param>
            </generator>
		</id>
		<property name="name" />
		<one-to-one name="address" constrained="true"></one-to-one>
	</class>
</hibernate-mapping>



<hibernate-mapping package="com.macrotea.hb.model">
	<class name="Address">
		<id name="id">
			<generator class="native" />
		</id>
		<property name="city" />
	</class>
</hibernate-mapping>
 
分享到:
评论

相关推荐

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

    本主题将深入探讨如何使用Hibernate通过主键来实现一对一的单向关联关系,并提供相关的源码分析。 首先,我们需要理解一对一关联关系的基本概念。在数据库中,一对一关系意味着两个表中的每一条记录都对应另一表中...

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

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

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

    本篇将重点讲解如何实现一对一主键关联映射的单向关联,并通过一个实际的例子来帮助理解。 在一对一主键关联映射中,两个实体共享同一个主键,这意味着它们在数据库中的记录具有相同的标识符。这种映射关系通常用于...

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

    以上就是关于Hibernate外键实现一对一单向关联关系的详细说明。这个知识点涉及到数据库设计、ORM框架的使用,以及Java编程实践,对于理解和使用Hibernate进行数据库操作具有重要意义。在实践中,应结合具体业务场景...

    hibernate一对一关联关系

    在实体类之间,Hibernate支持多种关联关系,包括一对一(One-to-One)、一对多(One-to-Many)和多对多(Many-to-Many)。本资源主要探讨的是“hibernate一对一关联关系”。 一对一关联关系在现实世界中很常见,...

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

    在Java的持久化框架Hibernate中,一对一(One-to-One)关联映射是一种常见的关系映射方式,用于表示两个实体之间一对一的对应关系。本篇主要探讨的是基于主键(Primary Key)的双向关联映射,这在实际项目中非常常见...

    Hibernate一对一单向外键关联 (联合主键annotation)

    本篇将详细讲解如何使用Hibernate进行一对一单向外键关联,并且该关联涉及到联合主键的注解配置。 首先,一对一关联可以分为两种类型:单向和双向。在单向一对一关联中,只有一个实体知道另一个实体的存在,而另一...

    Hibernate_实体关联关系映射--学习总结

    实体关联关系映射涉及一对一、一对多、多对多等多种形式,而这些映射方式又可以分为单向和双向,依据使用的是主键还是外键,以及是否使用连接表。接下来,我们详细介绍这些知识点。 ###Hibernate实体关联关系映射...

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

    如果两个实体的主键不相同,但仍然存在一对一关系,可以使用外键来建立关联。例如,`Person`有自己的主键,`Passport`有独立的主键,但有一个外键指向`Person`的主键。在`Passport`类中添加`@OneToOne`和`@...

    hibernate一对一之唯一外键关联(单向关联)

    在Java的持久化框架Hibernate中,一对一(One-to-One)关联是对象关系映射(ORM)中的一个重要概念,用于表示两个实体之间一对一的关系。在这个场景下,我们将讨论一种特殊的一对一关联方式——唯一外键关联(Single...

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

    一对一的关联在数据库设计中并不常见,但当两个实体之间确实存在一对一的关系时,如用户和其个人资料,这种关联就显得尤为重要。在Hibernate中,一对一的关联可以通过共享主键来实现,即两个表共用一个主键字段。 1...

    Hibernate 一对一外键单向关联

    总结起来,Hibernate中的一对一外键单向关联提供了方便的方式处理两个实体之间的关系。通过注解或XML配置,我们可以轻松地在Java对象和数据库表之间建立映射,使得数据操作更加简洁和高效。不过,需要注意的是,这种...

    一对一主键关联(视频)

    在数据库设计中,一对一主键关联是一种常见的关系模型,它用于表示两个表之间存在一对一的映射关系。这种关系意味着每个表中的记录都只能与另一个表中的唯一一条记录相关联。在本视频教程中,我们将深入探讨一对一...

    hibernate 主键一对一映射(单向) 实例(java类)

    在Java的持久化框架Hibernate中,一对一(One-to-One)映射是一种常见的关系映射方式,它用于表示两个实体之间一对一的关联关系。在这种关系中,一个实体对应另一个实体的唯一实例。本实例将深入探讨如何在Hibernate...

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

    在一对一唯一外键关联映射中,单向关联意味着一个实体知道另一个实体,而另一个实体对此关系无感知。通过在映射文件中配置`one-to-one`标签,我们可以方便地在Java对象和数据库表之间建立和维护这种关系。在实际开发...

    Hibernate 关联关系映射分类

    - **多对一单向关联**:在这种关联中,多个实体共享一个实体的引用,但这个被引用的实体并不知道有哪些实体引用了它。例如,部门与员工之间的关系,一个部门可以有多个员工,但每个员工只属于一个部门。 #### 双向...

    hibernate实体关联关系映射

    本文旨在深入探讨Hibernate中的实体关联关系映射技术,主要包括一对一、一对多、多对多等不同类型的关联关系及其在实际开发中的应用技巧。通过本文的学习,开发者可以更好地理解和掌握Hibernate框架下的实体关联关系...

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

    如何通过外键实现一个实体类(如订单)与另一个实体类(如商品)之间的一对多关系,并且这种关联是单向的,即从订单端可以访问到商品,但商品端不知道订单的存在。 **描述解析:** 描述中提到的“NULL”表明没有...

    hibernate一对一之唯一外键关联(双向关联)

    本篇主要探讨的是Hibernate中的一对一(OneToOne)关系映射,特别是唯一外键关联(UniDirectional and Bidirectional Association)的情况。我们将深入理解这种关联方式的配置、实现以及它在实际应用中的价值。 1. ...

Global site tag (gtag.js) - Google Analytics