JPA 2:@TableGenerator 的好处

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

@TableGenerator技术生成主键有什么好处? 为什么我们使用这种技术以及如何使用用于存储生成器的序列名称和值的第三个表来获取数据?

java hibernate jpa annotations
2个回答
3
投票

来自链接。 http://en.wikibooks.org/wiki/Java_Persistence/Identity_and_Sequencing#Table_sequencing

有多种生成唯一 ID 的策略。有些策略与数据库无关,而其他策略则利用内置数据库支持。 JPA 提供对通过 GenerationType 枚举值定义的多种 id 生成策略的支持:TABLE、SEQUENCE 和 IDENTITY。 选择使用哪种序列策略很重要,因为它会影响性能、并发性和可移植性。

因此,选择使用表生成器可以使您免于使用数据库特定功能。这使得以后可以轻松地将数据库迁移到其他数据库提供商。 因此,应该根据您是否想要稍后迁移数据库提供商、为此牺牲多少性能等来做出决定。


0
投票

TABLE 生成器有很多好处:

  1. 如果与 SEQUENCE 生成器相比,您可以使用一个表来存储多个实体的主键计数器。
  2. 您可以使用自定义字符前缀主键,如果与 IDENTITY 生成器进行比较,这些主键是连续的。
  3. 它使您的数据库可以轻松迁移,因为计数器将出现在基础表中

关于如何从 TABLE 生成器的底层表中获取数据,这里有一篇关于 如何实现带有前缀的自定义 TableGenerator 的文章。但网上有很多可用的。

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