据我了解,当在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。我会再考虑一下。