Spring Data JDBC参考文档三

本文主要介绍了Spring Data JDBC中的ID生成策略,特别是自动增量列的处理方式,以及乐观锁定机制的实现原理。同时,详细阐述了查询方法的使用,包括派生查询、@Query注解的使用和命名查询,并提到了对MyBatis的集成配置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

原标题:Spring认证|Spring Data JDBC参考文档三 (内容来源:Spring中国教育管理中心)#Spring##java##程序员#

Spring Data JDBC参考文档 三

9.6.9. 身份证生成

Spring Data JDBC 使用 ID 来标识实体。实体的 ID 必须使用 Spring Data 的@Id注解进行注解。

当您的数据库具有用于 ID 列的自动增量列时,生成的值在将其插入数据库后在实体中设置。

一个重要的约束是,在保存实体后,该实体不能再是新的。请注意,实体是否是新实体是实体状态的一部分。对于自动增量列,这会自动发生,因为 ID 由 Spring Data 使用 ID 列中的值设置。如果您不使用自增列,您可以使用一个BeforeSave监听器,它设置实体的 ID(在本文档后面介绍)。

9.6.10. 乐观锁定

Spring Data JDBC 通过@Version在聚合根上注释的数字属性来支持乐观锁定 。每当 Spring Data JDBC 使用这样的版本属性保存聚合时,会发生两件事:聚合根的更新语句将包含一个 where 子句,检查存储在数据库中的版本实际上未更改。如果不是这种情况,
OptimisticLockingFailureException将会抛出一个will。此外,实体和数据库中的 version 属性都会增加,因此并发操作将注意到更改并抛出一个(OptimisticLockingFailureException如果适用),如上所述。

这个过程也适用于插入新的聚合,其中 anull或0version 表示一个新实例,然后增加的实例将实例标记为不再是新的,这使得在对象构造期间生成 id 的情况下,例如当 UUID 是用过的。

在删除过程中,版本检查也适用,但不会增加版本。

9.7. 查询方法

本节提供有关 Spring Data JDBC 的实现和使用的一些特定信息。

您通常在存储库上触发的大多数数据访问操作都会导致对数据库运行查询。定义这样的查询就是在存储库接口上声明一个方法,如以下示例所示:

示例 58.带有查询方法的 PersonRepository

interface PersonRepository extends PagingAndSortingRepository {

List findByFirstname(String fi

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

技能咖

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值