-
<property name="curMonthtAmount" type="big_decimal">
<column name="cur_montht_amount" scale="2" precision="13">
<comment>当月出口金额</comment>
</column>
</property> -
Hibernate 配置文件precision与scale的说法
Oracle使用标准、可变长度的内部格式来存储数字。这个内部格式精度可以高达38位。
NUMBER数据类型可以有两个限定符,如:
column NUMBER ( precision, scale)
precision表示数字中的有效位。如果没有指定precision的话,Oracle将使用38作为精度。
scale表示数字小数点右边的位数,scale默认设置为0. 如果把scale设成负数,Oracle将把该数字取舍到小数点左边的指定位数。 - <hibernate-mapping>
- <class name="OrderBase" table="L_ORDERBASE" dynamic-update="true">
- <id name="id" type="string" unsaved-value="null" >
- <column name="ORDERID" sql-type="varchar2(32);" not-null="true"/>
- <generator class="uuid.hex"/>
- </id>
- <property name="name">
- <column name="NAME" sql-type="varchar2(30);" not-null="true"/>
- </property>
- <property name="type">
- <column name="TYPE" sql-type="varchar2(20);" not-null="false"/>
- </property>
- <property name="custid" column="CUSTID" type="big_decimal">
- </property>
- </class>
- </hibernate-mapping>
<hibernate-mapping>
<class name="OrderBase" table="L_ORDERBASE" dynamic-update="true">
<id name="id" type="string" unsaved-value="null" >
<column name="ORDERID" sql-type="varchar2(32);" not-null="true"/>
<generator class="uuid.hex"/>
</id>
<property name="name">
<column name="NAME" sql-type="varchar2(30);" not-null="true"/>
</property>
<property name="type">
<column name="TYPE" sql-type="varchar2(20);" not-null="false"/>
</property>
<property name="custid" column="CUSTID" type="big_decimal">
</property>
</class>
</hibernate-mapping>
但是Hibernate在生成建表的DDL的时候生成的是:
- drop table L_ORDERBASE cascade constraints
- create table L_ORDERBASE (
- ORDERID varchar2(32); not null,
- NAME varchar2(30); not null,
- TYPE varchar2(20);,
- CUSTID NUMBER(19, 255);,
- primary key (ORDERID);
- );