• hibernate报错Unknown integral data type for ids : java.lang.String


    package com.model;
    // Generated 2016-10-27 14:02:17 by Hibernate Tools 4.3.1.Final
    
    /**
     * CmDept generated by hbm2java
     */
    public class CmDept/* implements java.io.Serializable */{
    
        private String id;
        private String deptName;
    
        public CmDept() {
        }
    
        public CmDept(String id) {
            this.id = id;
        }
    
        public CmDept(String id, String deptName) {
            this.id = id;
            this.deptName = deptName;
        }
    
        public String getId() {
            return this.id;
        }
    
        public void setId(String id) {
            this.id = id;
        }
    
        public String getDeptName() {
            return this.deptName;
        }
    
        public void setDeptName(String deptName) {
            this.deptName = deptName;
        }
    
    }
    <?xml version="1.0"?>
    <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
    "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
    <!-- Generated 2016-10-27 14:40:22 by Hibernate Tools 3.5.0.Final -->
    <hibernate-mapping>
        <class name="com.model.CmDept" table="CM_DEPT">
            <id name="id" type="java.lang.String">
                <column name="ID" />
                <generator class="sequence">
                    <param name="sequence">cm_sequence_dept</param>
                </generator>
            </id>
            <property name="deptName" type="java.lang.String">
                <column name="DEPTNAME" />
            </property>
        </class>
    </hibernate-mapping>

    以上代码是报错的代码 ! ! !

    由于是使用的反向工程建表, 在设计表结构的时候将几个表的id设置成了varchar2型, 导致反向工程生成的实体类的主键id的类型变成String了, 所以当HibernateTemplate在插入数据的时候不认识了, 所以报了这个错误, 从新修改一遍表结构, 将oracle数据库的主键改成number, 将实体类中的id改成Bigdecimal, 还记得要重新生成一遍*.hbm.xml文件, 问题解决

  • 相关阅读:
    Android websocket使用
    Android WebSocket实现即时通讯功能
    A dependency may only have one source
    Finished with error: ProcessException: Process "D:FlutterAPPflutter_appfiveandroidgradlew.bat" exited abnormally:
    Android 中指纹识别
    vue学习指南:第四篇(详细)
    vue学习指南:第二篇(详细Vue基础)
    vue学习指南:第三篇(详细)
    webpack打包js文件
    H5离线缓存(基础)学习指南
  • 原文地址:https://www.cnblogs.com/wgbs25673578/p/6019814.html
Copyright © 2020-2023  润新知