2011-04-21 105 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