2014-03-24 3 views
0

2 개 이상의베이스로 최대 절전 모드를 사용해야합니다. 이베이스들은 같은 테이블을 가지고 있기 때문에 반복되는 동일한 객체 paras 테이블을 사용할 때 문제가 없을 것이라고 상상합니다. 그래서, 나는 HibernateUtil에서 다른 파일들을 hibernate.cfg.xml을 사용하면서 연결을 설정하는 데 어떻게 쓰는지 궁금합니다. 그러나 동일한 매핑 프로퍼티를 가지고 있습니다.하나 이상의 데이터베이스를 가진 최대 절전 모드

는 나는이 라인을 따라 뭔가 상상 :

sessionFactory = new AnnotationConfiguration().configure().buildSessionFactory(); 

하지만 난 어떻게 다른 파일을 구성하는 아이디어를 가지고 있겠지.

+1

하는 두 개의 데이터베이스를 사용하여 하나의 응용 프로그램에 대해 이야기하고 있는가? 또는 하나의 데이터베이스 또는 다른 데이터베이스를 사용하도록 응용 프로그램을 배포합니까? 전자의 경우 응용 프로그램이 두 개의 데이터베이스를 사용하는 이유는 무엇입니까? 무엇을 성취하려고합니까? – Hedley

+0

@Headley가 말한 것과 정확히 일치 ... 두 번째 (데이터베이스를 직접 선택) Hibernate의 multiTenancy가 사용자의 요구를 충족시킬 수 있습니다. – dimzak

+0

2 년 동안 1,500 만 개의 레코드가 있으며 검색을 향상시키기 위해이 데이터를 공유한다고 생각합니다. –

답변

0

두 가지 세션 팩토리 제공 업체가 있으며 각각은 해당 데이터베이스로 구성됩니다.

아래 예에서 HibernateUtilDb1hibernate-db1.cfg.xml의 구성을 사용하고 HibernateUtilDb2hibernate-db2.cfg.xml을 사용합니다.

public class HibernateUtilDb1 { 

    private static final SessionFactory sessionFactory = buildSessionFactory(); 

    private static SessionFactory buildSessionFactory() { 
     try { 
      return new Configuration().configure("hibernate-db1.cfg.xml").buildSessionFactory(); 
     } 
     catch (Throwable ex) { ...} 
    } 
... 

그리고 :

public class HibernateUtilDb2 { 

    private static final SessionFactory sessionFactory = buildSessionFactory(); 

    private static SessionFactory buildSessionFactory() { 
     try { 
      return new Configuration().configure("hibernate-db2.cfg.xml").buildSessionFactory(); 
     } 
     catch (Throwable ex) { ...} 
    } 
...