2011-04-21 74 views
0

我正在將一個對象存儲到我的數據庫中,並且我認爲我犯了一些我看不到的愚蠢錯誤。我武官一些代碼來了解英里問題:Mysql插入值

MyObject.java對象至極我想在dtabase存儲

@Entity 
@Table(name = "my_object") 
public class MyObject { 
    private String idName; 

    @Id 
    @Column(name = "id", unique = true, length = 50,nullable=false) 
    public String getIdName() { 
     return idName; 
    } 
    public void setIdName(String idName) { 
     this.idName = idName; 
     this.id = idName.hashCode(); 
    } 

TestToStoreObject.java

MyObject obj = new MyObject(); 

       obj.setIdName("id"); 
//More set ... 
       save(obj); 

功能存儲TJE進入數據庫的對象

protected void save(MyObject obj) throws DataAccessLayerException { 
     try{ 
      getHibernateTemplate().save(obj); 
     } catch (HibernateException e) { 
      handleException(e); 
     } 
    } 

這是一個與其他數據類型一起工作的通用函數。所以我猜這個問題在配置文件中。唯一的例外是:

org.springframework.dao.InvalidDataAccessResourceUsageException: 
    could not insert: [path.MyObject]; SQL [insert into object (id) values (?)]; 
nested exception is org.hibernate.exception.SQLGrammarException: 
    could not insert: [path.MyObject] 

這裏更多的配置文件:
HibernatePlatform.cfg.xml

<?xml version="1.0" encoding="UTF-8"?> 
    <!DOCTYPE hibernate-configuration PUBLIC 
      "-//Hibernate/Hibernate Configuration DTD 3.0//EN" 
      "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"> 
    <hibernate-configuration> 
     <session-factory> 
      <mapping class="path.User" /> 
      <mapping class="path.MyObject" /> 

.........

任何人可以幫助我這個??在此先感謝

+0

你有一個表'對象'與列'ID'和沒有其他非空約束嗎?列'id'的類型是什麼? – Thomas 2011-04-21 13:55:56

+0

「id」列是什麼?嘗試通過mysql控制檯插入該記錄 – Bozho 2011-04-21 13:57:04

+0

它是一個字符串。檢查Object.java @Column(name =「id」,unique = true,length = 50,nullable = false) – 2011-04-21 14:05:20

回答

0

問題是我在另一個軟件包中有另一個具有相同名稱的類,而且這很麻煩。對未來的建議:提供這些小東西!

0

只是一個猜測 - 你已經定義了一個名爲Object的類,並且很有可能你的類Object和java類java.lang.Object之間有名稱衝突。有可能,你試圖無意中存儲一個java.lang.Object

快速測試:將您的課程重構爲MyObject(使用eclipse,netbeans,...)。如果某些類型爲Object的是而不是在重構後發生了變化,那麼我的猜測可能是正確的。

+0

其實Object不是我的對象的名字,我只寫了一個通用名。無論如何,我會編輯我的問題。謝謝 – 2011-04-21 14:06:34

+0

@mujer esponja - ...下次更好地選擇一個更好的通用名稱:( – 2011-04-21 14:11:24