wether persistence.xml이 발견되었는지 여부를 어떻게 테스트 할 수 있습니까?

StackOverflow https://stackoverflow.com/questions/1400103

  •  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)

당신은 또한 이것을 확인할 수 있습니다 링크.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top