eclipse + eclipselink + maven2 + mysql + jpa 2.0 + java SE를 사용하고 있습니다.DAO 클래스가 persistence.xml을 볼 수 없습니다.
Eclipse로 Entity 클래스에서 MySQL 테이블을 만들 수 있습니다. persistence.xml은 src/main/resources/META-INF/...에 있습니다.
또한 프로덕션 및 테스트를 위해 이클립스에 데이터베이스 연결이 지정되어 있습니다. 어느 쪽이든 프로젝트와 함께 선택되어 작동하는 것 같습니다.
프로젝트와 함께 사용되는 데이터 원본에 따라 테이블이 선택한 데이터베이스에 만들어집니다. 데이터베이스 연결 정보로 persistence.xml에있는 내용이 무시됩니다 (예상되는 내용이 확실하지 않음). 또한 persistence.xml을 마우스 오른쪽 버튼으로 클릭하고 'JPA 도구'> '클래스 목록 동기화'를 선택하십시오. 파일은 엔터티 클래스로 업데이트됩니다.
persistence.xml도 필요합니다. 그렇지 않으면 테이블 중 하나에서 테이블이 만들어지지 않습니다. (파일의 이름을 변경하여 테스트 됨)
이전에 필자는 테스트를 위해 퍼팅하고로드하여 DAO 메소드를 실행할 수도있었습니다. 또한 Eclipse 패키지 탐색기에 'JPA'라는 메뉴 항목이 있는데, 더 이상 존재하지 않는 프로젝트의 JPA 엔티티를 나열합니다.
프로젝트를 변경하지 않았습니다 (컴퓨터는 밤에만 닫았습니다). 프로젝트를 연 다음에, 나는 더 이상 DAO-방법 중 하나를 수행 할 수 없었다 나는 다음과 같은 오류 얻을 :
No Persistence provider for EntityManager named xxx
같은 오류가 DAO-방법을 갖는 기본 클래스에 대한 제공, JUnit 테스트를 Eclipse에 의해 실행되었고 Maven에 의해 동일한 테스트가 실행되었습니다.
참고 : 엔티티에서 여전히 테이블을 만들 수 있습니다.
어떤 조언이 필요합니까?
때때로 'Deployment Assembly'속성을 사용하여 회상합니다 ...하지만 무엇이 맞는지. 이제는 그 옵션을 사용할 수조차 없습니다. 그러나 팁을 가져 주셔서 감사합니다. 그게 일을하지 않는 이유일지도 모르겠지만, 이제 그 이유가 무엇인지 알아 내야 만합니다. 또한 메뉴를 다시 가져 오는 지 확인하기 위해 Maven 특성을 비활성화했습니다. 불운. –
Eclipse Indigo, 그건 그렇고. –
새 프로젝트를 만들고 "동적 웹 프로젝트"로 간주하면 "배포 어셈블리"옵션이 나타납니다. 하지만 현재 사용중인 SE 프로젝트의 경우 사용할 수있는 옵션이 없으며 사용할 수 있다고하더라도 사용할 수 있을지 확실하지 않습니다. –