我在做hibernate的簡單事情,因爲我必須爲項目學習它。我創建了這個簡單的例子:Hibernate不再工作了...爲什麼?
package hibtests;
import hibtests.beans.newBean;
import org.hibernate.Session;
/**
*
* @author dario
*/
public class Main {
public void test(){
Session session = NewHibernateUtil.getSessionFactory().getCurrentSession();
session.beginTransaction();
newBean nb = new newBean();
nb.setNome("FooFoo");
session.save(nb);
session.getTransaction().commit();
}
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
Main main = new Main();
main.test();
}
}
...它工作正常,把行放在數據庫中。然後,我在另一堂課上工作了幾個小時。我再次嘗試這個例子,Hibernate使這個奇怪的查詢:
Hibernate:
insert
into
TEST
(ID, NOME)
values
(default, ?)
Hibernate:
values
identity_val_local()
喜歡它只是不能讀取屬性是FooFoo。我檢查了是否改變了來源......但事實並非如此。一切都像以前一樣,沒有例外。 newBean實例不爲null,FooFoo位於Nome字段中。爲什麼這個?
哦,我忘記了,我正在使用Netbeans 6.8和JavaDB。
按照要求,我映射如下:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="hibtests.beans.newBean" table="APP.TEST">
<id name="id" column="ID">
<generator class="identity"/>
</id>
<property name="nome" column="NOME" type="string"/>
</class>
</hibernate-mapping>
最後一分鐘更新:原來,插入是工作。無論如何,我仍然可以看到與查詢?而不是字符串。爲什麼?
按照要求newbean源代碼如下:
你可以發佈你的映射? – KLE 2010-01-19 16:45:25
爲了讓其他人更容易閱讀代碼,你可以考慮遵循一些編碼習慣嗎?例如,您的班級NewBean可能會以大寫字母開頭:-) – KLE 2010-01-19 16:47:58
是的抱歉,這只是一個快速而骯髒的測試... – gotch4 2010-01-19 17:09:00