浏览 10940 次
锁定老帖子 主题:Hibernate自动建表的一个问题。
该帖已经被评为精华帖
|
|
---|---|
作者 | 正文 |
发表时间:2003-09-18
<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); ); 由于CUSTID为NUMBER的类型,生成的CUSTID定义为NUMBER(19,255)精度超过了数据库精度标准(255)。所以建表就失败了。 请问大家遇到Java的big_decimal类型是如何处理的? 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2003-09-18
顺便说一句,从class2hbm生成的属性定义都是如下的样子:
<property name="custid" column="CUSTID" type="big_decimal"> 如果把这句改成: <property name="custid"> <column name="CUSTID" sql-type="number" not-null="true"/> </property> Hibernate自动建表就没有任何问题了。但是我不想做这个手工转换的工作。毕竟我的所有的表都是从class生成的。这样的话岂不太麻烦了。 请各位牛牛支招。 |
|
返回顶楼 | |
发表时间:2003-10-16
我也遇到相同的问题,有没有什么好办法?
|
|
返回顶楼 | |
发表时间:2004-03-12
yes |
|
返回顶楼 | |
发表时间:2004-05-18
关注,我也遇到同样的问题
而且: 在配置文件的property中什麽情况下写 sql-type 什麽情况下写type呢? |
|
返回顶楼 | |
发表时间:2004-05-22
if is BigDecimal 加一个 length=4 指定小数位数
|
|
返回顶楼 | |