SSH集成环境
java中使用Double类型
SQL2005中使用money类型
错误Caused by: org.hibernate.HibernateException: Wrong column type in zf.dbo.TBL_FWXX for column zj. Found: money, expected: double precision
at org.hibernate.mapping.Table.validateColumns(Table.java:284)
at org.hibernate.cfg.Configuration.validateSchema(Configuration.java:1116)问SQL中的money类型,Hibernate中应该使用什么类型与之对应

解决方案 »

  1.   

    float不行啊Caused by: org.hibernate.HibernateException: Wrong column type in zf.dbo.TBL_FWXX for column zj. Found: money, expected: float
      

  2.   

    hbm文件
    <?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="com.y.domain">
        <class name="FWXX" table="TBL_FWXX">
           <id name="id" column="fwid">
            <generator class="native"/>
           </id>
           <property name="user" column="uid"/>
           <property name="jd" column="jdid"/>
           <property name="lx" column="lxid"/>
           <property name="shi" column="shi"/>
           <property name="ting" column="ting"/>
           <property name="fwxx" column="fwxx"/>
           <property name="zj" column="zj"/>
           <property name="title" column="title"/>
           <property name="date" column="date"/>
           <property name="phone" column="telephone"/>
           <property name="lxr" column="lxr"/>
           
        </class>
    </hibernate-mapping>
      

  3.   

    数据库中的字段是
    zj money
      

  4.   

    java 里面用这个类型java.math.BigDecimal
      

  5.   

    还是不行啊,
    呃,
    Caused by: org.hibernate.HibernateException: Wrong column type in zf.dbo.TBL_FWXX for column zj. Found: money, expected: numeric(19,2)
      

  6.   

    package com.y.domain;import java.math.BigDecimal;
    import java.sql.Date;public class FWXX {
    private Integer id;
    private Integer user;
    private Integer jd;
    private Integer lx;
    private Integer shi;
    private Integer ting;
    private String fwxx;
    private BigDecimal zj;
    private String title;
    private Date date;
    private String phone;
    private String lxr;
    public Integer getId() {
    return id;
    }
    public void setId(Integer id) {
    this.id = id;
    }
    public Integer getUser() {
    return user;
    }
    public void setUser(Integer user) {
    this.user = user;
    }
    public Integer getJd() {
    return jd;
    }
    public void setJd(Integer jd) {
    this.jd = jd;
    }
    public Integer getLx() {
    return lx;
    }
    public void setLx(Integer lx) {
    this.lx = lx;
    }
    public Integer getShi() {
    return shi;
    }
    public void setShi(Integer shi) {
    this.shi = shi;
    }
    public Integer getTing() {
    return ting;
    }
    public void setTing(Integer ting) {
    this.ting = ting;
    }
    public String getFwxx() {
    return fwxx;
    }
    public void setFwxx(String fwxx) {
    this.fwxx = fwxx;
    }

    public BigDecimal getZj() {
    return zj;
    }
    public void setZj(BigDecimal zj) {
    this.zj = zj;
    }
    public String getTitle() {
    return title;
    }
    public void setTitle(String title) {
    this.title = title;
    }
    public Date getDate() {
    return date;
    }
    public void setDate(Date date) {
    this.date = date;
    }
    public String getPhone() {
    return phone;
    }
    public void setPhone(String phone) {
    this.phone = phone;
    }
    public String getLxr() {
    return lxr;
    }
    public void setLxr(String lxr) {
    this.lxr = lxr;
    }

    }
      

  7.   

    该数据库类型把,这个比较特殊,hibernate不支持这个money
      

  8.   

    <property name="zj" column="zj"/>这个配置不对。应该是
    <property name="zj" type=“对应的JAVA类型” column="zj"/>
      

  9.   

    private BigDecimal zj;
    JavaBean里用这个类型,有点不好处理,换个类型,不行吗?
      

  10.   

    我开始是用的Double类型,
    Float类型也用了.
    都不行啊,
    - -Hibernate伤不起啊,!
      

  11.   

    回14楼:
    <property name="zj" column="zj"/>这个配置不对。应该是
    <property name="zj" type=“对应的JAVA类型” column="zj"/>
    <property name="zj" type=“java.lang.Double” column="zj"/>同样不行啊!
      

  12.   

    double类型,
    float类型
    用这个的时候是什么问题呢?
      

  13.   

    能不能用String啊,然后入表时转下呢
      

  14.   

    回19楼
    还是不行,
    Caused by: org.hibernate.HibernateException: Wrong column type in zf.dbo.TBL_FWXX for column zj. Found: money, expected: varchar(255)
      

  15.   

    回20楼
    FLOAT:
    Caused by: org.hibernate.HibernateException: Wrong column type in zf.dbo.TBL_FWXX for column zj. Found: money, expected: float
    ----------
    DOUBLE:
    Caused by: org.hibernate.HibernateException: Wrong column type in zf.dbo.TBL_FWXX for column zj. Found: money, expected: double precision
      

  16.   

    回21楼,Hibernate怎么在入表的时候转一下,?
      

  17.   

    入表时把那对象的属性转成 float试试,不一要用add(),用那个写SQL的方法,试试
      

  18.   

    我没用Add啊,Hibernate是交给Spring管理的,启动都启动不了
      

  19.   

    用hibernate的反向生成功能就可以明白数据库中的money对应java中的什么类型了
      

  20.   

    回:27楼
    用hibernate的反向生成功能就可以明白数据库中的money对应java中的什么类型了反向生成功能怎么使用?
      

  21.   

     回28楼
    使用BigDecimal
    报这个错误:
    Caused by: org.hibernate.HibernateException: Wrong column type in zf.dbo.TBL_FWXX for column zj. Found: money, expected: numeric(19,2)
      

  22.   

    这个用 Double 然后转换,我之前写过类似的
       <property name="zj" type="java.lang.Double">
                <column name="zj" scale="4" />
            </property>
      

  23.   

    回34楼,
    private Double zj;
    <property name="zj" column="zj" type="java.lang.Double" scale="4"/>
    错误:Wrong column type in zf.dbo.TBL_FWXX for column zj. Found: money, expected: double precision感谢大家的关注,
    如果大家有时间可以看源码哪里出了问题可以留个邮箱,
    虽然问题还没有被解决,
    不过大家的热心真的让我很感动