gpt4 book ai didi

hibernate - 为什么 Hibernate 将 BIGINT 映射到 BigInteger

转载 作者:行者123 更新时间:2023-12-04 18:40:26 25 4
gpt4 key购买 nike

在大多数数据库中,BIGINT 是一个 64 位整数。有谁知道为什么 Hibernate 将这些映射到 BigInteger 而不是 Long?我可以很好地处理这些,但我只是好奇。

您可以在 Dialect.java 中查看此类型的默认映射。我什至发现了一个 hibernate 问题,但没有评论说明为什么会出现这种情况。

https://hibernate.atlassian.net/browse/HHH-7318

我认为这个选择一定是有原因的,但我在谷歌上没有取得任何成功。

另外,子类化我的数据库方言并覆盖它会有什么影响?

谢谢!

最佳答案

很可能是因为 BIGINT s 可以是无符号的( in MySQL at least ,如果不在其他 RDBMS 中)。

唯一可以保存 64 位无符号整数的完整范围的 Java 类型是 BigInteger .使用 long 是不正确的为此,因为这会将 18446744073709551615 (264 - 1) 转换为 -1。

关于hibernate - 为什么 Hibernate 将 BIGINT 映射到 BigInteger,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27429422/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com