Hibernate / JPA混合ID生成策略

时间:2011-01-18 11:04:03

标签: java hibernate jpa id-generation

假设我有以下情况:我有5个实体(为简单起见而减少),其中我明确知道其中3个数据库中的记录很少(15-20或所以每个)。其余2个实体将拥有大量记录(数千个)并且也将迅速增长。

使用默认的Hibernate ID生成策略(AUTO),这意味着所有记录都将在所有实体中具有唯一ID(因为只有1个序列)。我不愿意这样做,因为这意味着由于某些表格中有大量记录,ID会快速增长。

问题#1 :我可以重新定义两个大实体的ID stragey,以便每个实体都有自己的序列,并将其他实体保留在AUTO上吗?混合和匹配ID策略是否被视为好/坏做法?我应该/不应该这样做的任何理由?

问题#2 :考虑到Oracle 10g数据库,ID生成策略是否有任何优缺点?例如;最好使用TABLE代替SEQUENCE吗?

提前致谢!

2 个答案:

答案 0 :(得分:1)

问题#1:完全没问题。每个实体类都可以拥有自己的ID策略。

问题#2:序列主要用于生成代理键。所以,请毫不畏惧地使用它:-)

答案 1 :(得分:0)

使用oracle DBMS我认为您应该考虑为所有实体使用序列

  • 数据生成由DB
  • 完成
  • 您没有让您的代码更容易解​​开的特殊情况