Мне нужно протестировать некоторые вещи в проекте, который был разработан другими, но для меня это новость.
Они используют Hibernate как реализацию JPA.
У меня есть виртуальная машина, в которой все настроено, но когда я хочу запустить любой 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
Структура проекта выглядит следующим образом. Как ни странно, у меня уже была эта штука (до моих летних выходных.
|-- 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 должен быть размещен. (И почему это сообщение об ошибке вводит в заблуждение?)