`

hibernate的关联关系----一对一单向关联之外键关联

阅读更多

实体类:

Address:
public class Address implements Serializable{
	private Long id;
	private String name;
	public Long getId() {
		return id;
	}
	public void setId(Long id) {
		this.id = id;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
}
Person:
public class Person implements Serializable{
	private Long id;
	private String name;
	private Address address;
	public Long getId() {
		return id;
	}
	public void setId(Long id) {
		this.id = id;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public Address getAddress() {
		return address;
	}
	public void setAddress(Address address) {
		this.address = address;
	}
}

 hbm:

 

Address hbm:
<hibernate-mapping>
	<class name="com.model.o2o.fk.Address" table="t_address" schema="yang">
		<id name="id" type="java.lang.Long">
			<column name="ID" scale="0" />
			<generator class="sequence" />
		</id>
		<property name="name" type="java.lang.String">
			<column name="name" not-null="true" />
		</property>
	</class>
</hibernate-mapping>
Person hbm:
<hibernate-mapping>
<class name="com.model.o2o.fk.Person" table="t_person" schema="yang">
    <id name="id" column="id">
        <generator class="native"/>
    </id>
    <property name="name" type="string">
    	<column name="name"/>
    </property>
      <many-to-one name="address" column="addressId" unique="true" not-null="true"/>
</class>
</hibernate-mapping>

  

sql:

drop table yang.t_address cascade constraints
drop table yang.t_person cascade constraints
drop sequence hibernate_sequence
create table yang.t_address (ID number(19,0) not null, name varchar2(255 char) not null, primary key (ID))
create table yang.t_person (id number(19,0) not null, name varchar2(255 char), addressId number(19,0) not null unique, primary key (id))
alter table yang.t_person add constraint FK785BED80C96D476E foreign key (addressId) references yang.t_address
create sequence hibernate_sequence 
hibernate API 写道
基于外键关联的单向一对一关联和单向多对一关联几乎是一样的。唯一的不同就是单向一对一关联中的外键字段具有唯一性约束。

   <many-to-one name="address" column="addressId" unique="true" not-null="true"/>

这两个表之间是通过主外键关系进行关联映射,其中t_address是主键表,t_person是外键表。和传统的的主外键关系不同的是,t_person表中的addressId具有唯一约束,(addressId number(19,0) not null unique),这样t_person表中的addressId则只能和t_address表中的id在数据库中形成一对一的主外键关系

分享到:
评论

相关推荐

    Hibernate关联映射-one to one单向外键关联

    以上就是关于Hibernate中一对一单向外键关联的基本介绍。通过理解和熟练掌握这种关联方式,开发者可以更高效地设计和管理数据库模型,提升应用性能。在实际项目中,还需结合业务场景灵活运用,并注意性能优化。通过...

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

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

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

    在这个过程中,Hibernate会根据配置的关联关系自动维护两个实体之间的一对一唯一外键关联关系。 Hibernate的一对一唯一外键关联映射是一种强大的关联方式,能够描述两个实体之间的唯一关联关系。在实际应用中,需要...

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

    以上就是关于Hibernate中实现多对一单向关联关系的基本知识,包括如何在实体类中定义关联、如何进行数据库操作以及如何查询关联对象。这个源代码示例应该提供了更具体的实现细节,你可以通过查看和运行它来深入理解...

    hibernate一对一关联关系

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

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

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

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

    “Hibernate基于外键的一对多单向关联”这个标题指的是在Java持久化框架Hibernate中,如何通过外键实现一个实体类(如订单)与另一个实体类(如商品)之间的一对多关系,并且这种关联是单向的,即从订单端可以访问到...

    Hibernate 一对一外键单向关联

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

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

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

    Hibernate 关联关系映射分类

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

    Hibernate-单向关系Hibernate-单向关系

    在单向一对一关系中,一个实体类拥有一条指向另一个实体的引用,而另一个实体类对此没有感知。例如,一个人可能有一个唯一的身份证,但在身份证实体中并不需要知道是哪个人的。配置时,可以在具有引用的一方使用`@...

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

    - **单向关联**:实体间的关联关系只在一个实体中体现。 - **双向关联**:实体间的关联关系在两个实体中都得到体现。 #### 映射关系的实现方法 - **外键关联**:通过在表中添加外键约束来实现关联关系。 - **连接...

    hibernate关联映射详解

    包含《多对多双向关联映射》《多对一单向关联映射》《多对一双向关联映射》《一对多单向关联映射》等文档,并有图解及例子,非常适合新手学习,尤其是刚刚接触hibernate,对映射关系不清楚的。。。。

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

    总结来说,Hibernate中的一对一主键关联映射允许两个实体共享同一个主键,实现单向关联时只需在依赖方添加对另一方的引用。在实际应用中,应根据业务需求谨慎选择关联类型,以确保数据的完整性和一致性。

    Hibernate关联关系映射目录

    在一对一外键单向关联中,两个实体之间通过一个外键字段进行关联。例如,一个人(Person)与一个地址(Address)之间的关联可以通过在`Person`表中添加一个`addressId`字段作为外键来实现。在这个例子中,`Person`...

    Hibernate教程04_关系映射之一对一单向外键关联

    **标题详解:**“Hibernate教程04_关系映射之一对一单向外键关联” 在Hibernate框架中,关系映射是数据库表之间的关联在对象模型中的体现。本教程重点讲解了一对一(One-to-One)单向外键关联的实现方法。在数据库...

    hibernate关联关系之一对一双向关联

    这种关联关系可以是单向的,也可以是双向的,而这里的"hibernate关联关系之一对一双向关联"着重讨论的是后者。双向关联意味着两个实体类都可以直接访问对方,提供了更方便的数据操作。 在Hibernate中,一对一双向...

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

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

    hibernate关联关系2

    - `@JoinColumn`用于一对一或一对多的单向关联,指定外键所在的列。 - `@JoinTable`用于多对多关联,定义连接表及其列。 二、项目实践 该项目可能包含以下关键文件: - `pom.xml`:Maven项目配置文件,包含了...

Global site tag (gtag.js) - Google Analytics