使用业务实体的自然ID作为主键

问题描述 投票:0回答:1

我想检查一下,是否建议使用自然id(20位varchar)作为表的主键。我正在使用spring-data-jpa。是否存在任何性能问题或此方法的任何利弊

spring-boot spring-data-jpa
1个回答
0
投票

表的主键类型取决于它们的用法。使用大多数长数据类型。如果您的用例是为您的表提供一个自然的主键,它具有特殊含义,如社会安全号码,那么请使用它。如果它是自然键或主键,JPA并不关心它。与生成的主键相比,自然主键的一个区别是,JPA不必执行查询来检索主键的下一个值。但这几乎不是性能问题。

JPA只为您创建查询(插入/更新/删除)并将结果映射到Java对象。

也许这个文档可以帮助你以及https://en.wikibooks.org/wiki/Java_Persistence/Identity_and_Sequencing

© www.soinside.com 2019 - 2024. All rights reserved.