這是一個在java中使用hibernate的非常簡單的例子:一個函數,當它被調用時,它會在數據庫中創建一個新的對象。如果一切順利,則更改將立即存儲並可見(無緩存問題)。如果失敗了,應該恢復數據庫,就好像這個函數從未被調用一樣。休眠事務結束示例
public String createObject() {
PersistentTransaction t = null;
try {
t = PersistentManager.instance().getSession().beginTransaction();
Foods f = new Foods(); //Foods is an Hibernate object
//set some values on f
f.save();
t.commit();
PersistentManager.instance().getSession().clear();
return "everything allright";
} catch (Exception e) {
System.out.println("Error while creating object");
e.printStackTrace();
try {
t.rollback();
System.out.println("Database restored after the error.");
} catch (Exception e1) {
System.out.println("Error restoring database!");
e1.printStackTrace();
}
}
return "there was an error";
}
有什麼錯誤?你會改變/改善任何事情嗎?
如果被調用的函數在jboss環境中,作爲一個web服務?我是否也應該每次關閉會話? – Hectoret 2011-03-02 12:38:39
http://community.jboss.org/wiki/Sessionsandtransactions – 2011-03-02 12:43:17