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文件, 問題解決