Mysql插入值

时间:2011-04-21 13:45:35

标签: java mysql hibernate

我正在将一个Object存储到我的数据库中,我想我正在犯一些我看不到的愚蠢错误。我附上一些代码来理解mi问题:

我希望存储在dtabase中的

MyObject.java 对象

@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);

将对象存储到数据库中的函数

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" />

.........

有人可以帮我吗?提前致谢

2 个答案:

答案 0 :(得分:0)

只是一个猜测 - 你已经定义了一个名为Object的类,并且很有可能你的类Object和java类{{1}之间存在名称冲突}}。您可能会意外地尝试存储java.lang.Object

快速测试:将您的类重构为java.lang.Object(使用eclipse,netbeans,...)。如果某些名为MyObject的类型在重构后 未更改,那么我的猜测可能是正确的。

答案 1 :(得分:0)

问题是我在另一个包中有另一个具有相同名称的类,而且它很混乱。对未来的建议:追逐这些小事!!