Java长数据类型在oracle中转换为bigint类型
我正在做一个学习hibernate的示例程序。实体中定义的变量之一是Java Long类型,但当我启动应用程序时,当Hibernate尝试在Oracle数据库中自动创建表时,它会生成类型为Java长数据类型在oracle中转换为bigint类型,java,oracle,hibernate,Java,Oracle,Hibernate,我正在做一个学习hibernate的示例程序。实体中定义的变量之一是Java Long类型,但当我启动应用程序时,当Hibernate尝试在Oracle数据库中自动创建表时,它会生成类型为bigint的创建表脚本 “private Long pin”转换为“pin bigint”,因为oracle不支持bigint数据类型,脚本失败。我在hibernate.properties文件中添加了dialen=org.hibernate.dialen.oraclealent,以生成特定于Oracle的S
bigint
的创建表脚本
“
private Long pin
”转换为“pin bigint
”,因为oracle不支持bigint
数据类型,脚本失败。我在hibernate.properties
文件中添加了dialen=org.hibernate.dialen.oraclealent
,以生成特定于Oracle的SQL。还有什么需要做的吗?Hmm除非您真的使用pin进行任何数学运算,否则您应该使用BigDecimal数据类型。Oracle的内部数据类型编号更接近BigDecimal,而不是Long。长的优点是数学速度快。操作,但对于存储在数据库中的大多数“数字”,唯一性是您所关心的。我不使用PIN进行任何数学操作。只是想知道原因是什么。仅供参考,在将其更改为BigDecimal之后,创建的表很好。我不知道为什么hibernate会这样。大多数数据库以二进制格式存储数字(Mysql-TINYINT、SMALLINT、BIGINT),Java的长类型也是二进制的。有些数据库存储为十进制数字(MySQL的十进制)。Oracle只有一个数字数据类型-NUMBER,它存储数字的方式与Java BigDecimal相同。