我正在使用hibernate 4.1、ZK6.5和mySql 9.3开发一个应用程序,我尝试在我的代码中使用generationtype.sequence,但不幸的是它返回了一个错误。在互联网上做了一些研究之后,我发现MySQL不支持序列,所以我使用@GeneratedValue(策略= GenerationType.IDENTITY),它解决了我的问题!但是我想知道为什么序列不适用于mySql?
发布于 2021-03-29 20:05:40
我留下了一个答案,所以这个问题可以从“未回答”的SOF类别中删除。KevinB,你可以留下答案,我来投票。我只希望这个问题是封闭的,out...more,而不是(我)“得分”。
但这里有一个具体的答案和参考。
简短版本:
MySql没有“真”序列。如果您想要进行大量的JPA批处理,它使用的是序列遍历表workaround...that是一个瓶颈。
https://thorben-janssen.com/5-things-you-need-to-know-when-using-hibernate-with-mysql/
JPA规范的@GeneratedValue注释允许您定义要用来创建唯一主键值的策略。您可以在序列、标识、表和自动之间进行选择。
通常,我建议使用序列策略,因为它允许Hibernate使用JDBC批处理和其他需要延迟执行SQL语句的优化策略。
,但不能在MySQL数据库中使用此策略。它需要一个数据库序列,MySQL不支持这个特性.
https://stackoverflow.com/questions/16458201
复制相似问题