栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

JPA和默认锁定模式

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

JPA和默认锁定模式

我已经浏览了Java Persistence API 2.0 Final
Release
规范的3.4.4 锁定模式 部分,虽然找不到任何 特定的 东西(它没有声明 这
是默认值或类似的东西),但是有一个脚注说以下。

锁定模式类型NONE可以指定为锁定模式参数的值,并且还为注释提供默认值。

本节介绍了

LockModeType
可用值的种类及其用法,并介绍了哪些方法接受此类参数,而没有其他方法。

因此,正如它所说的那样

LockModeType.NONE
,注解是默认的(JPA,左右注解),我想应该在使用
EntityManager.find(Class,Object)
默认
LockModeType
值时使用。

还有其他一些 微妙的 提示可以加强这一点。3.1.1节 EntityManager接口 。

无需在事务上下文中调用find方法(假设它不带锁地调用或使用LockModeType.NONE调用)和getReference方法。

这说得通。例如,如果您使用MySQL作为数据库,而您选择的数据库引擎是InnoDB,那么(默认情况下)您的表将使用

REPEATABLEREAD
,如果您使用其他RDBMS或其他数据库引擎,则可能会改变。

现在,我不能完全确定隔离级别是否与JPA锁定模式有关(尽管似乎是这样),但是我的观点是,不同的数据库系统有所不同,因此JPA无法为您做出决定(至少根据规范)默认使用哪种锁定模式,因此,

LockModeType.NONE
如果您没有其他说明,它将使用该模式。

我还找到了有关隔离级别和锁定模式的文章,您可能想阅读。

哦,回答您的最后一个问题。

如果不定义显式锁定模式,是否会丢失数据库完整性?

这 要看情况 ,但是如果您有并发事务,那么答案可能 是肯定的 。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/508451.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号