우리는 현재 프로젝트를 위해 내부적으로 Oracle 10g를 사용하고 있으며, 변경 될 가능성은 적지 만 결국이 응용 프로그램을 다른 고객에게 제공 할 예정이며 대체 무료 DB를 제안 할 수 있어야합니다.Hibernate 애플리케이션을 DB 독립적으로 만드는 방법은 무엇입니까?
그래서 사용되는 기본 RDBMS와 독립적 인 Hibernate 지속성 계층을 만드는 가장 좋은 방법은 무엇입니까? 이상적으로는 JDBC URL과 사용 된 dialect를 변경할 수 있기를 원하며 적어도 Oracle 10g와 MySQL 또는 PostgreSQL 사이를 전환하십시오.
주요 문제는 ID 생성 전략에서 비롯됩니다. 우리는 현재 테이블 당 하나의 시퀀스와 함께 ID 기반의 시퀀스 기반 발전기를 사용하고 있습니다. 명백한 움직임은 "기본"전략으로 전환하는 것 같습니다. 그렇다면 모든 테이블에 대해 하나의 고유 시퀀스가 될 것입니까? 오라클에서 실행되는 프로덕션 시스템의 기존 데이터는 어떻게됩니까? 마이그레이션하는 방법? 함정은 무엇입니까?
하나의 RDBMS/방언에서 다른 방언으로 전환 할 때주의해야 할 사항은 무엇입니까?
감사합니다. 휴대용으로 보이는 hilo도 보았습니다. 그러나 새로 생성 된 ID와 중복되지 않고 기존 데이터 (기존 ID 및 FK 등)를 마이그레이션 할 수 있다고 생각하십니까? –
먼저 모든 테이블에서 가장 큰 기존 ID를 찾아야합니다. 그런 다음 max_lo (hilo generator의 매개 변수)에 사용할 값을 결정하십시오. 예를 들어 값 max_lo = 100이고 가장 큰 기존 ID가 23456이면 hi_value 테이블의 next_value 필드를 235로 업데이트하여 다음 ID가 23500에서 시작되도록해야합니다. – YudhiWidyatama