[蟲?] Hibernate + HSQLDB 問題

看板java作者 (痞子軍團團長)時間12年前 (2012/05/04 14:15), 編輯推噓1(105)
留言6則, 3人參與, 最新討論串1/1
有 link 的網誌版:http://blog.dontcareabout.us/2012/05/hibernate-hsqldb.html 測試環境:Hibernate 4.1.2、HSQLDB 2.2.8、Java 1.6 抓了兩個 H 的最新版,結果前後炸了四五個小時才能開始塞資料。 茲紀錄如下。 大抵上是參考 《Hibernate 學習筆記》 (中文嘛...... [毆飛]), 只不過 database 改成用 HSQLDB Server 版。 第一個遇到的問題是:只要一作 session.beginTransaction(), Hibernate 就會炸 「No suitable driver found for jdbc:hsqldb:hsql://localhost/DBNAME」, 最後找到的解法是在建立 Configuration 之前 就先執行「Class.forName("org.hsqldb.jdbc.JDBCDriver")」。 (參考資料:Hibernate forum) 順便補一下,似乎在 Hibernate 4 以後 Configuration.buildSessionFactory() 就被 deprecated 掉, 不過(到目前為止)使用起來還是正常。 至於標準寫法我沒研究,可參見 stackoverflow。 第二個遇到的問題是 session.save() 時 HSQLDB 會炸 「user lacks privilege or object not found」, 據說如果用 Hibernate 3.6 跟 HSQLDB 1.8 就不會有這種困擾...... Orz。 這篇提到要將 Hibernate 的 hibernate.hbm2ddl.auto 設定為 create, 不過實際測試之後得設定成 update, 第二次以後的 openSession() 後才能正常運作。 (參考資料:Hibernate reference) 重新 update: →create:每次重開 Tomcat 就會 drop 掉 table 重建 →validate:要已經有 table 了才能正常運作 →update:沒有 table 會建 table,不過在系統運作中不能有人 drop table 做了這些手腳之後,目前 save() 之後東西都會乖乖進資料庫了。 於是又寫一篇可能沒多久之後就沒意義的 debug / 教學文...... 軟體業阿...... [遠目] -- 錢鍾書: 說出來的話 http://www.psmonkey.org 比不上不說出來的話 Java 版 cookcomic 版 只影射著說不出來的話 and more...... -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.135.202.140 ※ 編輯: PsMonkey 來自: 220.135.202.140 (05/04 16:21)

05/04 18:30, , 1F
每次 drop 掉重建那個, 看看設定檔裡有沒有 drop 什麼的
05/04 18:30, 1F

05/04 18:37, , 2F
Drop and re-create the database schema on startup
05/04 18:37, 2F

05/04 18:38, , 3F
從這篇來的 http://0rz.tw/X96wP
05/04 18:38, 3F

05/04 18:43, , 4F
JBOSS 系列的相容性一向很有趣
05/04 18:43, 4F

05/05 00:07, , 5F
其實可以考慮改用 h2 啊QQ
05/05 00:07, 5F

05/05 12:41, , 6F
案主指定 XDXD
05/05 12:41, 6F
文章代碼(AID): #1FetGLX1 (java)