读书人

hibernate配备保存2位小数

发布时间: 2012-08-24 10:00:20 作者: rapoo

hibernate配置保存2位小数
类:

public class Account {private Integer accountId;      //账户idprivate BigDecimal accountMoney;    //账户总金额private BigDecimal accountLockMoney;//锁定金额private Date accountCreateDate; //创建时间
配置文件:

<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE hibernate-mapping PUBLIC        "-//Hibernate/Hibernate Mapping DTD 3.0//EN"        "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"><hibernate-mapping package="cn.anycall.bean">    <class name="Account" table="tuan_account">        <id name="accountId" column="tuan_account_id" length="50" type="integer">            <generator column="tuan_account_money" length="200" not-null="true" type="big_decimal" scale="2"/>        <property name="accountLockMoney" column="tuan_account_lock_money" length="20" not-null="true" type="big_decimal" scale="2" />        <property name="accountCreateDate" column="tuan_account_create_date" length="20" not-null="true" type="timestamp"/>        <many-to-one name="person" column="tuan_account_person_id" not-null="true"/>    </class></hibernate-mapping>


生成表结构为:
SQL> desc tuan_account;Name                     Type         Nullable Default Comments ------------------------ ------------ -------- ------- -------- TUAN_ACCOUNT_ID          NUMBER(10)                             TUAN_ACCOUNT_MONEY       NUMBE(19,2)                                  TUAN_ACCOUNT_LOCK_MONEY  NUMBER(19,2)                           TUAN_ACCOUNT_CREATE_DATE DATE                                                SQL> 






ps:
Oracle使用标准、可变长度的内部格式来存储数字。这个内部格式精度可以高达38位。

NUMBER数据类型可以有两个限定符,如:
java对象类型是:BigDecimal 配置文件字段类型:big_decimal
precision表示数字中的有效位。如果没有指定precision的话,Oracle将使用38作为精度。

scale表示数字小数点右边的位数,scale默认设置为0.  如果把scale设成负数,Oracle将把该数字取舍到小数点左边的指定位数。

读书人网 >软件架构设计

热点推荐