persistence.xml의 지속성 단위는 응용 프로그램을 빌드하는 동안 만들어집니다. 런타임시 데이터베이스 URL을 변경하려면 런타임에 지속성 단위를 수정할 수있는 방법이 있습니까? 배포 후 사전 바인딩 된 데이터베이스가 아닌 다른 데이터베이스를 사용해야합니다. 나는 당신이 플러그인 프레임 워크를 작성해야 수명이 긴 세션 아키텍처는 EclipseLink (JPA 2.1)동적으로 지속성 단위 변경 - JPA
12
A
답변
25
지속성 파일 (Persistence.xml)을 그대로 유지하십시오. 다음과 같이 속성을 재정의 할 수 있습니다.
EntityManagerFactory managerFactory = null;
Map<String, String> persistenceMap = new HashMap<String, String>();
persistenceMap.put("javax.persistence.jdbc.url", "<url>");
persistenceMap.put("javax.persistence.jdbc.user", "<username>");
persistenceMap.put("javax.persistence.jdbc.password", "<password>");
persistenceMap.put("javax.persistence.jdbc.driver", "<driver>");
managerFactory = Persistence.createEntityManagerFactory("<current persistence unit>", persistenceMap);
manager = managerFactory.createEntityManager();
0
을 사용하고
.
따라서 다른 스레드 그룹 및 클래스 리포지토리를 만들어야합니다.
이 (보통 URLClassLoader를, 포함 Entitys) 당신의 클래스 로더 트리
- 시스템 클래스 로더가 될
- JPA-클래스 로더
- 은 JPA를로드 할 수 .jar 안에
persistence.xml
이 있으면 응용 프로그램 클래스 로더에서 데이터베이스 구성을 지정하십시오. - entityManager/session-factory를 인스턴스화하십시오.
- 데이터베이스를 사용하여 작업해야하는 모든 플러그인을로드하십시오. 유닛 테스트 (D) 및 플러그인 통합 테스트 실행.
- 은 JPA를로드 할 수 .jar 안에
는
- JPA-클래스 로더
2
당신은 데이터베이스 URL 및 기타 설정을 선택하는 속성을 전달하는 Persistence.createEntityManagerFactory (지도)를 사용할 수 있습니다.
+0
좋은 소리입니다. 내가 이것을 시도하자. –
관련 문제
- 1. EJB-JPA 지속성 단위
- 2. JPA 기본 지속성 단위
- 3. JPA 2.1이있는 persistence.xml 파일의 다중 지속성 단위
- 4. JPA 작업중인 응용 프로그램에서 다른 지속성 단위
- 5. persistence.xml 다중 지속성 단위
- 6. OSGi 및 지속성 단위
- 7. JPA ManyToMany 오류가 지속성
- 8. JPA : 구성 지속성 제공
- 9. JPA 상속 지속성
- 10. J2SE JPA 지속성 동작
- 11. 스프링 데이터 JPA - JUnit으로 작동하지만 Tomcat이 아닌 다중 지속성 단위
- 12. ObjectTypeConverter가 지속성 단위 내에 없습니다.
- 13. Seam - 다중 지속성 단위
- 14. 지속성 컨텍스트에 대한 JPA 모니터
- 15. JPA 2 지속성 컨텍스트 지정
- 16. JPA CascaseType - 지속성 및 병합
- 17. EJB가있는 JPA : 지속성 공급자 없음
- 18. GAE 및 JPA 지속성 예외
- 19. 동일한 트랜잭션에서 여러 지속성 단위
- 20. spring-boot-jpa 초기 엔티티 지속성
- 21. 단위 테스트 - 플럭스 및 데이터 지속성
- 22. Liquibase에서 지속성 단위 이름을 참조하는 방법
- 23. Google Guice 지속성 + 스프링 데이터 JPA
- 24. JPA/Eclipselink 대상 서버에만 지속성 공급자가없는 EntityManager
- 25. Spring3 엔티티 관리자 팩토리에서 JPA 지속성 예외
- 26. JPA 및 PostqreSQL : 긴 문자열 지속성
- 27. JPA @OneToMany가 다른 지속성 단위를 연결하면
- 28. jpa 2.0 지속성 : 딜레마 생성 및 업데이트
- 29. 다른 번들에서 jpa 지속성 단위를 사용하는 OSGi?
- 30. JPA/SCALA xxx라는 지속성 공급자가 없습니까?
서버를 사용합니까? –
Nop. 그것은 독립 실행 형 응용 프로그램입니다. 데이터베이스 서버는 Oracle-12c 및 SQL Server 9.0.x입니다. –