最初于2015年1月31日出版

spring data jpa and database
春季数据

我们如何使用春季数据初级专业人员协会实现数据库关系?

有许多现实世界的对象会影响一个商业案例。 其中,有一些会影响企业的特定用例。 一旦我们确定了影响特定业务用例的现实对象,就创建了一个数据库模型。 更准确地说,实体关系图就是由该集合可用于保存记录。些信息构成的。 这些业务对象或实体之间有许多关系,必须在软件中实现。

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。

数据库实时同步

spring data jpa and database

春天的JDBC本质上是一个朴素的JDBC

spring data jpa and database

4. 给关系数据库管理系统的对象提供数据来保持它。

spring data jpa and database

本质上,是关系数据库管理系统层负责持久性。

spring data jpa and database

在本文中,我将讨论如何使用春天数据来保持这一点。

spring data jpa and database

第一步:使用像STS这样的工具,它内置了创建实体对象的规定。

spring data jpa and database

然后你会看到:

spring data jpa and database

输入“联合行动计划项目”创建一个初级专业人员协会项目。 在这里,您可以根据自己的理解输入值。 除非您想进行一些配置,否则请单击”下一步” .

尝试将连接添加到新连接。

选择数据库类型。输入连接详细信息。

完成后春天,数据初级专业人员协会将为您创建项目执行所需的爪哇岛文件。 这些爪哇岛文件将具有实体和列映射。

请确保您有@Id映射,否则将出现休眠异常。现在,为了实现一对多关系,请确保您已经在客户类中定义了行。@ OneToMany(级联=级联类型。在这里,”一对一”关系确保了一个客户有多个账户。

,orphanRemoval = true,mappedBy=”account “(全部(

@ManyToOne(级联=级联类型。 全部

(

@JoinColumn(名称=” ACCOUNT_ID “,可为空= 错误的

( 私人的 顾客顾客。

这确保了多对一关系的建立。

如果要为现有的父项创建新的子记录,必须将子记录与父项相关联。

您可以通过提供父编号在子表中创建记录。

但是春季数据初级专业人员协会要求父记录以便能够创建子记录。

理解事务和春季数据初级专业人员协会如何协同工作是非常重要的。

事务具有以下传播级别:

命令的

支持当前事务,如果不存在,则创建一个新事务。当前交易;如果不存在异常,则抛出异常。

嵌套的

如果当前事务存在,则在嵌套事务中执行,行为类似于PROGRAMME _ REQUIRED else .

从不

需要

不支持(_ s)

以非事务方式执行,如果存在当前事务,则暂停当前事务。

需要

支持

需要_新

创建一个新事务,如果存在当前事务,则暂停当前事务。

支持

支持当前事务,如果不存在,则以非事务方式执行。

事务具有以下隔离级别:

系统默认值

使用底层数据存储的默认隔离级别。

READ_COMMITTED

指示防止脏读的常数;可能会出现不可重复的读取和幻像读取。

READ _ UNTRIBUTE 一个常数,指示可能发生脏读、不可重复读和幻像读。

可重复_读取

一个常数,指示防止脏读和不可重复读;可能会出现幻像读取。 SERIALIZABLE 一个常数,指示防止脏读、不可重复读和幻像读。 现在,当您想要调用事务时,请确保已经使用的隔离级别是正确的。 此外,确保方法上的传播级别正确。 如何使用弹簧数据实现批量插入? JpaRepository的方法具有接受对象集合的规定。

请不要假设这是一个批量插入。

不是的。

相关文章: