我必須在其他人開發的項目上測試一些項目,但對我來說是新項目。 他們使用Hibernate作爲JPA實現。如何測試是否找到persistence.xml?
我得到了一臺虛擬機,其中設置了一切,但是當我想啓動任何Testclient(小型控制檯程序,沒有Unittesting)時。我總是得到同樣的錯誤。
Exception in thread "main" javax.persistence.PersistenceException: org.hibernate.HibernateException: Hibernate Dialect must be explicitly set
at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:698)
at org.hibernate.ejb.HibernatePersistence.createEntityManagerFactory(HibernatePersistence.java:121)
at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:51)
at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:33)
...
Caused by: org.hibernate.HibernateException: Hibernate Dialect must be explicitly set
at org.hibernate.dialect.DialectFactory.determineDialect(DialectFactory.java:57)
at org.hibernate.dialect.DialectFactory.buildDialect(DialectFactory.java:39)
at org.hibernate.cfg.SettingsFactory.determineDialect(SettingsFactory.java:409)
at org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:119)
at org.hibernate.cfg.Configuration.buildSettings(Configuration.java:2006)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1289)
at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:691)
... 7 more
項目結構看起來像這樣。奇怪的是我已經有這個事情我summerholdays之前運行(
|-- bin
|-- lib
|-- rsc
| |-- META-INF
| | `-- persistence.xml
|-- src
| |-- org
| | | ... all sourcecode below
`-- target
我試圖縮小問題,所以我刪除整個META-INF文件夾中。不過同樣的錯誤。這不是我所期待的和導致我相信沒有找到persistence.xml 我不知道他們爲什麼把META-INF放到rsc文件夾中(正如我提到的,這不是我的項目),但是當我將它放入根文件夾或在src文件夾中錯誤仍然存在。
如何確保已找到persistence.xml?是否有任何需要放置META-INF的文檔(以及爲什麼這個錯誤消息如此誤導?)
非常感謝,我曾經在我的其他項目中有一個ant目標,所以我不知道persistence.xml需要在某個位置。 (我仍然與錯誤消息爭吵。) – sebastiangeiger 2009-09-10 10:15:21