使用业务实体的自然ID作为主键
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用业务实体的自然ID作为主键相关的知识,希望对你有一定的参考价值。
我想检查一下,是否建议使用自然id(20位varchar)作为表的主键。我正在使用spring-data-jpa。是否存在任何性能问题或此方法的任何利弊
答案
表的主键类型取决于它们的用法。使用大多数长数据类型。如果您的用例是为您的表提供一个自然的主键,它具有特殊含义,如社会安全号码,那么请使用它。如果它是自然键或主键,JPA并不关心它。与生成的主键相比,自然主键的一个区别是,JPA不必执行查询来检索主键的下一个值。但这几乎不是性能问题。
JPA只为您创建查询(插入/更新/删除)并将结果映射到Java对象。
也许这个文档可以帮助你以及https://en.wikibooks.org/wiki/Java_Persistence/Identity_and_Sequencing
以上是关于使用业务实体的自然ID作为主键的主要内容,如果未能解决你的问题,请参考以下文章
JAVAEE学习笔记hibernate02:实体规则对象状态缓存事务批量查询和实现客户列表显示