wether persistence.xml이 발견되었는지 여부를 어떻게 테스트 할 수 있습니까?
-
05-07-2019 - |
문제
나는 다른 사람들이 개발 한 프로젝트에서 몇 가지를 테스트해야하지만 나에게 새로운 것입니다. 그들은 최대 절전 모드를 JPA 구현으로 사용하고 있습니다.
모든 것이 설정되는 가상 머신을 얻었지만 테스트 클리어를 시작하고 싶을 때 (소형 콘솔 프로그램, 단위 테스트 없음). 나는 항상 같은 오류가 발생합니다.
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
문제를 좁히려고 했으므로 전체 메타 INF 폴더를 삭제했습니다. 여전히 같은 오류입니다. 그것은 내가 기대했던 것이 아니며 끈기가 전혀 찾을 수 없다고 믿게했습니다. 그들이 왜 그들이 RSC 폴더에 Meta-INF를 넣는 지 모르겠지만 (내가 언급했듯이, 그것은 내 프로젝트가 아닙니다) 루트 폴더 나 SRC 폴더에 넣을 때 오류가 남아 있습니다.
Persistence.xml이 발견되었는지 확인하려면 어떻게해야합니까? Meta-Inf를 배치 해야하는 문서가 있습니까? (그리고 왜 이런 잘못된 일이 그렇게 오해의 소지가 있습니까?)
해결책
테스트 앱을 시작할 때 컴파일 된 파일/JAR이 끝나는 빌드 프로세스에 따라 다릅니다. 나는 당신이 SRC- 폴더에서 시작하지 않을 것입니다. 앱을 실행할 수있는 빌드 또는 테스트 폴더를 얻을 수 있습니다. 폴더 구조는 일반적으로 다음과 같아야합니다.
|- build
|- classes
|- org (packages)
|- ...
|- META-INF
|- persistence.xml
|- ... (other config files)
당신은 또한 이것을 확인할 수 있습니다 링크.
제휴하지 않습니다 StackOverflow