Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/385.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java长数据类型在oracle中转换为bigint类型_Java_Oracle_Hibernate - Fatal编程技术网

Java长数据类型在oracle中转换为bigint类型

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

我正在做一个学习hibernate的示例程序。实体中定义的变量之一是Java Long类型,但当我启动应用程序时,当Hibernate尝试在Oracle数据库中自动创建表时,它会生成类型为
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相同。