[蟲?] Hibernate + HSQLDB 問題
有 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
05/04 18:30, 1F
推
05/04 18:37, , 2F
05/04 18:37, 2F
→
05/04 18:38, , 3F
05/04 18:38, 3F
→
05/04 18:43, , 4F
05/04 18:43, 4F
→
05/05 00:07, , 5F
05/05 00:07, 5F
→
05/05 12:41, , 6F
05/05 12:41, 6F