我正在將一個對象存儲到我的數據庫中,並且我認爲我犯了一些我看不到的愚蠢錯誤。我武官一些代碼來了解英里問題: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" />
.........
任何人可以幫助我這個??在此先感謝
你有一個表'對象'與列'ID'和沒有其他非空約束嗎?列'id'的類型是什麼? – Thomas 2011-04-21 13:55:56
「id」列是什麼?嘗試通過mysql控制檯插入該記錄 – Bozho 2011-04-21 13:57:04
它是一個字符串。檢查Object.java @Column(name =「id」,unique = true,length = 50,nullable = false) – 2011-04-21 14:05:20