1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
@Entity @Table (name= "t_user" )
publicclass User { private Integer id;
private String name;
private Card card;
@OneToOne
@JoinColumn (name= "card_id" ,unique= true ) //name是自定义关联外键的列名
public Card getCard() {
returncard;
}
publicvoid setCard(Card card) {
this .card = card;
}
@Id
@GeneratedValue
public Integer getId() {
returnid;
}
publicvoid setId(Integerid) {
this .id = id;
}
@Column (name= "name" )
public String getName() {
returnname;
}
publicvoid setName(Stringname) {
this .name = name;
}
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
@Entity @Table (name= "t_card" )
publicclass Card { private Integer id;
private String num;
@Id
@GeneratedValue
public Integer getId() {
returnid;
}
publicvoid setId(Integerid) {
this .id = id;
}
@Column (name= "card_id" )
public String getNum() {
returnnum;
}
publicvoid setNum(Stringnum) {
this .num = num;
}
} |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
publicclass Group { private Integer id;
private String name;
public Integer getId() {
returnid;
}
publicvoid setId(Integerid) {
this .id = id;
}
public String getName() {
returnname;
}
publicvoid setName(Stringname) {
this .name = name;
}
} |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
publicclass Person { private Integer id;
private String name;
private Integer age;
private Group group;
public Group getGroup() {
returngroup;
}
publicvoid setGroup(Groupgroup) {
this .group = group;
}
public Integer getId() {
returnid;
}
publicvoid setId(Integerid) {
this .id = id;
}
public String getName() {
return name;
}
public void setName(Stringname) {
this .name = name;
}
public Integer getAge() {
return age;
}
publicvoid setAge(Integer age){
this .age = age;
}
} |
1
2
3
4
5
6
7
8
9
10
11
12
13
|
<? 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 package = "csg.hibernate.entity" >
< class name = "Group" table = "t_group" >
< id name = "id" >
< column name = "id" />
< generator class = "native" />
</ id >
< property name = "name" />
</ class >
</ hibernate-mapping >
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
<? 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 package = "csg.hibernate.entity" >
< class name = "Person" table = "t_person" >
< id name = "id" >
< column name = "id" />
< generator class = "native" />
</ id >
< property name = "name" />
< property name = "age" />
< many-to-one name = "group" column = "group_id" unique = "true" not-null = "true" />
</ class >
</ hibernate-mapping >
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
@Entity @Table (name= "t_user" )
publicclass User { private Integer id;
private String name;
private Card card;
@OneToOne
@JoinColumn (name= "card_id" ,unique= true ) //name主要是自定义关联外键的列名
public Card getCard() {
returncard;
}
publicvoid setCard(Cardcard) {
this .card = card;
}
@Id
@GeneratedValue
public Integer getId() {
returnid;
}
publicvoid setId(Integerid) {
this .id = id;
}
@Column (name= "name" )
public String getName() {
returnname;
}
publicvoid setName(Stringname) {
this .name = name;
}
} |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
@Entity @Table (name= "t_card" )
publicclass Card { private Integer id;
private String num;
private User user;
@OneToOne (mappedBy= "card" ) //mappedBy的意思是指定User中的card作为关联外键,否则User和Card都会出现外键
public User getUser() {
returnuser;
}
publicvoid setUser(Useruser) {
this .user = user;
}
@Id
@GeneratedValue
public Integer getId() {
returnid;
}
publicvoid setId(Integerid) {
this .id = id;
}
@Column (name= "card_id" )
public String getNum() {
returnnum;
}
publicvoid setNum(Stringnum) {
this .num = num;
}
} |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
<? 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 package = "csg.hibernate.entity" >
< class name = "Person" table = "t_person" >
< id name = "id" >
< column name = "id" />
< generator class = "native" />
</ id >
< property name = "name" />
< property name = "age" />
< many-to-one name = "group" column = "group_id" unique = "true" not-null = "true" />
</ class >
</ hibernate-mapping >
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
<? 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 package = "csg.hibernate.entity" >
< class name = "Group" table = "t_group" >
< id name = "id" >
< column name = "id" />
< generator class = "native" />
</ id >
< property name = "name" />
<!-- many-to-one这种配置会分别在两个表中都产生外键,造成数据的多余,通常我们采用one-to-one的形式在xml中配置 -->
< many-to-one name = "Person" column = "person_id" unique = "true" />
<!-- <one-to-onename="person"property-ref="group"/> -->
</ class >
</ hibernate-mapping >
|
相关推荐
在Hibernate中,一对一关联映射分为单向和双向。单向一对一映射通常涉及一个实体持有另一个实体的引用,而双向一对一映射则意味着两个实体都可以互相引用。这种关联关系在数据库层面通常通过主键外键约束来实现,但...
包含《多对多双向关联映射》《多对一单向关联映射》《多对一双向关联映射》《一对多单向关联映射》等文档,并有图解及例子,非常适合新手学习,尤其是刚刚接触hibernate,对映射关系不清楚的。。。。
在Java的持久化框架Hibernate中,一对一(One-to-One)关联映射是常见的关系映射方式之一,尤其在处理两个实体之间存在唯一对应关系时非常有用。本篇将重点讲解如何实现一对一主键关联映射的单向关联,并通过一个...
**标题详解:**“Hibernate教程04_关系映射之一对一单向外键关联” 在Hibernate框架中,关系映射是数据库表之间的关联在对象模型中的体现。本教程重点讲解了一对一(One-to-One)单向外键关联的实现方法。在数据库...
在Java的持久化框架Hibernate中,一对一(One-to-One)关联映射是常见的...以上就是关于Hibernate一对一唯一外键关联映射(单向关联)的详细说明。通过这种方式,我们可以轻松地在Java应用中处理数据库的一对一关系。
在Java的持久化框架Hibernate中,一对一(One-to-One)关联关系是常见的一种实体关系映射。本主题将深入探讨如何使用Hibernate通过主键来实现一对一的单向关联关系,并提供相关的源码分析。 首先,我们需要理解一对...
在本文中,我们将详细介绍Hibernate一对一唯一外键关联映射的概念、配置方法和实践应用。 一对一唯一外键关联映射的概念 在Hibernate中,一对一唯一外键关联映射是指两个实体之间的关联关系,其中一个实体作为外键...
本篇主要探讨的是基于主键(Primary Key)的双向关联映射,这在实际项目中非常常见,比如用户与账户、员工与职务等场景。 一、主键关联映射概述 主键关联映射是通过将两个实体类的主键相互引用来实现一对一关系的。...
本篇主要探讨的是Hibernate中的一对一(OneToOne)关系映射,特别是唯一外键关联(UniDirectional and Bidirectional Association)的情况。我们将深入理解这种关联方式的配置、实现以及它在实际应用中的价值。 1. ...
### Hibernate一对一关联映射原理 一对一关联映射是指在数据库中两个表之间存在一对一的关系,例如,一个人只有一个身份证,一个身份证也只属于一个人。在Hibernate中,我们可以通过@OneToOne注解来实现这种映射。 ...
9. Hibernate 一对一外键双向关联、主键双向关联、连接表双向关联、一对多外键双向关联、一对多连接表双向关联、多对多双向关联: 这些关联方式与单向关联类似,区别在于两个实体类都知道彼此的关联。在双向关联中...
本文主要探讨的是Hibernate中的两种关联关系:多对一单向关联和多对一双向关联。通过理解这两种关联方式,我们可以更好地设计和实现复杂的数据库模型。 首先,我们来看**多对一单向关联**。这种关联意味着一个实体...
这种关联关系可以是单向的,也可以是双向的,而这里的"hibernate关联关系之一对一双向关联"着重讨论的是后者。双向关联意味着两个实体类都可以直接访问对方,提供了更方便的数据操作。 在Hibernate中,一对一双向...
1. **关联类型:** Hibernate支持四种基本的关联类型,包括一对一(OneToOne)、一对多(OneToMany)、多对一(ManyToOne)和多对多(ManyToMany)。本主题将主要聚焦在一对一和一对多关联。 2. **关联的方向性:**...
在Hibernate中,一对一关联可以被进一步细分为单向关联和双向关联,以及基于主键关联和基于外键关联。 #### 单向关联 - **基于主键关联**:在这种情况下,两个实体中的一个实体的主键作为另一个实体的外键,实现了...
在这个“Hibernate双向一对一关联映射(XML版)”的主题中,我们将深入探讨如何通过XML配置文件实现两个实体之间的一对一关系。 首先,我们需要理解一对一关联的概念。在数据库中,一对一关联意味着两个表中的每一...
**标题:** Hibernate一对一关联映射 **描述:** 在Java开发中,Hibernate作为一款强大的对象关系映射(ORM)框架,极大地简化了数据库操作。一对一(OneToOne)关联映射是Hibernate提供的一种对象关系映射策略,它...