最初于2015年1月31日出版
我们如何使用春季数据初级专业人员协会实现数据库关系?
有许多现实世界的对象会影响一个商业案例。 其中,有一些会影响企业的特定用例。 一旦我们确定了影响特定业务用例的现实对象,就创建了一个数据库模型。 更准确地说,实体关系图就是由该集合可用于保存记录。些信息构成的。 这些业务对象或实体之间有许多关系,必须在软件中实现。
You might also like:
Spring Boot With Spring Data JPA
你可能还喜欢:
带弹簧数据的弹簧靴 你可能还喜欢:带弹簧数据的弹簧靴 关系通过匹配键列中的数据来工作,键列通常是两个表中同名的列。
在大多数情况下,关系匹配一个表中的主键,主键为每一行提供唯一的标识符,外键中有一个条目在另一个表中。 假设我们正在为一家电信供应商工作,该供应商希望跟踪那些从一个地点转移到另一个地点的客户,并在他们每次转移到新地点时要求新的连接。 因此,在这种情况下,客户将与一个帐户相关联。 该帐户绑定到一个特定的位置,该位置有邮政编码。 这似乎是一个客户在一个给定的位置只能有一个帐户。 如果允许同一个客户在一个地点拥有多个账户,那么这意味着一个客户可以在一个地点拥有多个账户。
这是一对多关系的一个例子。 同样,该位置可以有多个帐户。
这导致帐户和位置之间的多对一关系。 由于同一个客户与该位置相关联,因此他们之间是一对一的关系。 表之间有三种类型的关系。
创建的关系类型取决于相关列的定义方式。
因此,在上面的例子中,一个客户可以绑定到一个位置。 一对多关系 一对多关系是最常见的关系类型。 在这种类型的关系中,表A中的一行在表B中可以有许多匹配行,但是表B中的一行在表A中只能有一个匹配行 在上面的例子中,一个客户在一个给定的地点可以有多个账户。
所以这是一对多的关系。 以下是一些技术:多对多关系 在多对多关系中,表A中的一行在表B中可以有许多匹配的行,反之亦然。
在上面的示例中,一个客户可以在一个位置拥有多个帐户。 因此,客户和客户之间可能存在多对多的关系,前提是为新客户提供了一个新的客户id,并且不与同一个客户编号相关联。
还可以通过定义第三个表(称为连接表现在,在帐户类中,请确保您有:来维护这种关系,该表的主键由表A和表b的外键组成 这可能不是真正以非事务方式执行,如果存在事务,抛出异常。的。
使用JDBC驱动程序的普通JDBC一对一的关系 在一对一关系中,表A中的一行在表B中只能有一个匹配行,反之亦然。
如果两个相关列都是主键或具有唯一约束,则会创建一对一关系。 1.
在爪哇岛空间中有多种方法可以解决这个问题。 2.
1. 3.
2.
使用冬眠的春季数据JPA 3。
春天的JDBC本质上是一个朴素的JDBC
4. 给关系数据库管理系统的对象提供数据来保持它。
本质上,是关系数据库管理系统层负责持久性。
在本文中,我将讨论如何使用春天数据来保持这一点。
第一步:使用像STS这样的工具,它内置了创建实体对象的规定。
然后你会看到:
输入“联合行动计划项目”创建一个初级专业人员协会项目。 在这里,您可以根据自己的理解输入值。 除非您想进行一些配置,否则请单击”下一步” .
尝试将连接添加到新连接。
选择数据库类型。输入连接详细信息。
完成后春天,数据初级专业人员协会将为您创建项目执行所需的爪哇岛文件。 这些爪哇岛文件将具有实体和列映射。
请确保您有@Id映射,否则将出现休眠异常。现在,为了实现一对多关系,请确保您已经在客户类中定义了行。@ OneToMany(级联=级联类型。在这里,”一对一”关系确保了一个客户有多个账户。
,orphanRemoval = true,mappedBy=”account “(全部(
@ManyToOne(级联=级联类型。 全部
(
@JoinColumn(名称=” ACCOUNT_ID “,可为空= 错误的
( 私人的 顾客顾客。
|
这确保了多对一关系的建立。 如果要为现有的父项创建新的子记录,必须将子记录与父项相关联。 |
|
您可以通过提供父编号在子表中创建记录。 但是春季数据初级专业人员协会要求父记录以便能够创建子记录。 |
|
理解事务和春季数据初级专业人员协会如何协同工作是非常重要的。 事务具有以下传播级别: |
|
命令的 支持当前事务,如果不存在,则创建一个新事务。当前交易;如果不存在异常,则抛出异常。 |
|
嵌套的 如果当前事务存在,则在嵌套事务中执行,行为类似于PROGRAMME _ REQUIRED else . |
|
从不 需要 |
|
不支持(_ s) 以非事务方式执行,如果存在当前事务,则暂停当前事务。 |
需要
|
支持 需要_新 |
|
创建一个新事务,如果存在当前事务,则暂停当前事务。 支持 |
|
支持当前事务,如果不存在,则以非事务方式执行。 事务具有以下隔离级别: |
|
系统默认值 使用底层数据存储的默认隔离级别。 |
|
READ_COMMITTED 指示防止脏读的常数;可能会出现不可重复的读取和幻像读取。 |
READ _ UNTRIBUTE 一个常数,指示可能发生脏读、不可重复读和幻像读。
可重复_读取
一个常数,指示防止脏读和不可重复读;可能会出现幻像读取。 SERIALIZABLE 一个常数,指示防止脏读、不可重复读和幻像读。 现在,当您想要调用事务时,请确保已经使用的隔离级别是正确的。 此外,确保方法上的传播级别正确。 如何使用弹簧数据实现批量插入? JpaRepository的方法具有接受对象集合的规定。 这
请不要假设这是一个批量插入。
不是的。
这