2017-01-11 10 views
0

예 : 데이터베이스 테이블을 처리 할 Java DAO가있는 경우, DAO 및 해당 Manager를 jar 파일로 릴리스하면이 jar에 대한 종속성이있는 응용 프로그램에 액세스 할 수있는 경우 이 jar의 최신 버전에만 적용됩니다. 그러면 데이터베이스 스키마가 변경 될 때 최신 jar는 어떻게 이전 버전과의 호환성을 처리합니까?Java DAO가 이전 데이터베이스 스키마 버전을 지원하는 방법

Eample가 : Dao_1.jar가 릴리스되었을 때 Dao_2.jar 놓으면 ... 데이터베이스 스키마 버전 V1.0 있었다 ..... 데이터베이스 스키마 버전은

방법 1.1

입니다 Dao_2.jar를 사용하는 응용 프로그램이 데이터베이스 스키마 버전 V1.0을 다루거나 상호 작용할 수 있습니까?

답변

0

기술적으로는 해결할 수 없습니다! 예를 들어 Dao_2 엔티티에 새 필드를 추가하기 만하면됩니다. 그러나 데이터베이스 스키마 버전 V1.0에서는 해당 필드가 없습니다. 그래서 모든 것은 응용 프로그램을 실행 한 후에 혼란이 될 것입니다. 당신은 당신의 하이버 네이트 (JPA) 설정이 데이터베이스 스키마를 업데이트하도록 할 수있다. 이 시나리오에서는 애플리케이션을 실행 한 후 V1.0의 데이터베이스 스키마가 Dao_2를 기반으로 현재 버전으로 변경됩니다. 하지만 그것은 위험합니다. 올바른 접근 방법은 항상 Dao에서 데이터베이스 스키마로 이동하는 것입니다. 응용 프로그램 도메인과 별도로 스키마를 편집하지 마십시오. 응용 프로그램 데이터 도메인에 새로운 변경 사항을 적용합니다. 그러면 ORM이 모든 것을 처리하고 데이터베이스 스키마도 업데이트 할 것입니다.