【问题标题】:Hibernate reverse engineers (oracle) NUMBER to zero-precision big_decimalHibernate 逆向工程师 (oracle) NUMBER 到零精度 big_decimal
【发布时间】:2014-06-15 02:44:35
【问题描述】:

在 Oracle 视图中对数据类型为“NUMBER”的列进行逆向工程时,*.hbm.xml 中的结果列是 big_decimalprecision="0"

我也将这些映射文件与 Derby 一起使用来进行验收测试,但来自Derby docs

精度必须在 1 到 31 之间。

我无法控制视图的定义。我通读了reverse engineering docs,但看不到控制精度的方法。

我如何指示 hibernate 给我一个有效的(德比)精度?

【问题讨论】:

    标签: oracle hibernate reverse-engineering derby


    【解决方案1】:

    你应该修改 hibernate.reveng.xml 和你的需要(精度,比例)和设置输出类型(hibernate-type),然后生成类和映射文件。

        <hibernate-reverse-engineering>
               <type-mapping>
               <sql-type jdbc-type="NUMERIC" precision="1" scale="0" hibernate-type="boolean"/>
               <sql-type jdbc-type="NUMERIC" precision="22" scale="0" hibernate-type="long"/>  
               <sql-type jdbc-type="OTHER" hibernate-type="..."/>
               </type-mapping>
          ....
    

    【讨论】:

    • 设置这些type-mappings不会影响生成的映射文件(.hbm.xml)中的精度和比例值,只会影响列的休眠类型。将NUMERICprecision="0" 匹配仍将导致.hbm.xmlprecision="0" 中的列。
    猜你喜欢
    • 2011-07-24
    • 1970-01-01
    • 1970-01-01
    • 2015-09-21
    • 2015-09-27
    • 1970-01-01
    • 2012-03-15
    • 2012-05-06
    • 1970-01-01
    相关资源
    最近更新 更多