hibernate 为什么mysql中的generationtype.sequence不起作用?

v440hwme  于 2023-08-06  发布在  Mysql
关注(0)|答案(1)|浏览(137)

我正在使用hibernate 4.1,zk 6.5和mySql 9.3开发一个应用程序,我试图在我的代码中使用generationtype.sequence,但不幸的是它返回了一个错误,在互联网上做了一些研究后,我发现MySQL不支持sequence,所以我使用@GeneratedValue(strategy = GenerationType.IDENTITY),它解决了我的问题!但我想知道为什么sequence不能和mySql一起使用?

pu3pd22g

pu3pd22g1#

我留下了一个答案,所以这个问题可以从“未回答”的SOF类别中删除。凯文B,你可以留下答案,我会投赞成票的。我只想这个问题被关闭了...比(我)“拿分”更多。
但这里有一个具体的答案和参考。
简短版本:
MySql没有“true”序列。它使用了Sequence-via-a-Table的解决方法……如果你想做大量的JPA批处理,这是一个瓶颈。
https://thorben-janssen.com/5-things-you-need-to-know-when-using-hibernate-with-mysql/
1.Map:主键有效地处理和创建主键是应用程序中最基本但最重要的部分之一。
JPA规范的@GeneratedValue注解允许您定义想要用来创建唯一主键值的策略。可以在SEQUENCE、IDENTITY、TABLE和AUTO之间进行选择。
一般来说,我建议使用SEQUENCE策略,因为它允许Hibernate使用JDBC批处理和其他需要延迟执行SQLINSERT语句的优化策略。

但是您不能将此策略用于 MySQL 数据库。需要数据库序列,MySQL不支持此功能。

相关问题