据我了解,当在Oracle中将“本机”类用于自动ID生成时,将创建一个休眠序列,从该序列将所有ID提供给所需的任何表。

但是我看不到MySQL会发生这种情况。相反,每个表的ID均以1开头。

如果有错,请纠正我。

另外,如果我想在MySQL上进行同样的调试,应该怎么做。

谢谢大家

拉吉

最佳答案

据我了解,在Oracle中将“本机”类用于自动ID生成时,会创建一个休眠序列,从该序列将所有ID提供给所需的任何表。

如果您不指定任何序列名称,则会发生这种情况:

<generator class="sequence">
  <param name="sequence">employer_id_seq</param>
</generator>

实际上,大多数情况下,人们不想要唯一的序列,而是希望每个表使用一个序列。

但是我看不到MySQL会发生这种情况。相反,每个表的ID均以1开头。

对于MySQL,native生成器将默认为identity策略,即将使用每个表的标识列。

另外,如果我希望在MySQL上发生同样的事情,应该怎么做。

同样,我猜您的意思是为所有实体使用顺序ID。试试 table 生成器:
<generator class="table">
</generator>

但是,这样做的效果不如序列或标识列。同样,人们通常倾向于不像我已经写过的那样在实体之间不共享ID。我会再考虑一下。

07-25 23:22
查看更多