hibernate生成器增量与表自动增量冲突

发布于 2024-11-25 13:18:46 字数 106 浏览 1 评论 0原文

我在 hbm 文件中将生成器设置为“增量”,并且还将 auto_increment 内容也放入数据库表中。 这个 creteria 显示问题....

这两件事是冲突的吗? ?

I set generator as 'increment' in hbm file, and also i put auto_increment thing in database table also.
This creteria showing issue ....

This both thing is conflicting ? ?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

狂之美人 2024-12-02 13:18:46

是的,它们是冲突的,没有意义。

当使用hibernate内置生成器“增量”时,hibernate通过在启动时从最大主键值计数来生成标识符,在多JVM中不安全并且使用数据库AUTO_INCRMENT它是为新行生成唯一标识的数据库。

在 mySQL DB 中,如果使用 AUTO_INCRMENT,您应该在映射中使用标识,让数据库安全地生成唯一标识。

来自 hibernate 文档

增量

生成唯一的 long、short 或 int 类型的标识符
当没有其他进程向同一个表中插入数据时。不要
在集群中使用。

身份

支持 DB2、MySQL、MS SQL Server、Sybase 和
HypersonicSQL。返回的标识符的类型为long、short或int。

更多信息
Hibernate 文档第 5.1.4.1 节。生成器
My sql AUTO_INCRMENT 文档

Yes they are conflicting, makes no sense..

When using hibernate built-in generator 'increment', it's hibernate that generate the identifiers by counting from the maximum primary key value at startup, not safe in multi JVM and using the database AUTO_INCREMENT it's the database that generate a unique identity for new rows.

In mySQL DB, if using AUTO_INCREMENT you should use identity in your mapping to let the database safely generate unique identity.

From hibernate documentation

increment

Generates identifiers of type long, short or int that are unique only
when no other process is inserting data into the same table. Do not
use in a cluster.

identity

supports identity columns in DB2, MySQL, MS SQL Server, Sybase and
HypersonicSQL. The returned identifier is of type long, short or int.

More information
Hibernate Doc section 5.1.4.1. Generator
My sql AUTO_INCREMENT documentation

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文