众所周知,我们总是使用自动增量作为主键。
我想知道自动增量如何适用于mysql和hibernate
例如,表中最新的主键值为10000。 hibernate如何理解主键的当前值是10000,下一个值应该是10001? mysql如何知道表的下一个主键值是什么?
答案 0 :(得分:2)
我假设您正在使用GenerationType.AUTO让Hibernate确定如何处理id生成。以下是与您类似的问题: Who is responsible of the auto-incrementation of a primary key between MySQL and Hibernate?
因此对于MYSQL,hibernate默认为MYSQL的AUTO_INCREMENT。可以在此处找到AUTO_INCREMENT的说明:http://dev.mysql.com/doc/refman/5.0/en/example-auto-increment.html
至于Hibernate / MYSQL如何知道最后生成的id,MYSQL为每个表都有一个AUTO_INCREMENT列,其中指定了AUTO_INCREMENT id生成策略,其中存储了最近生成的Id。