2010-12-22 8 views
1

MySQL 데이터베이스에 연결하기 위해 Hibernate를 사용하는 Java 응용 프로그램을 개발 중입니다.Hibernate의 동적 테이블 이름

내 응용 프로그램은 다른 배치의 학생을 관리합니다. 학생이 2010 년에 합류했다면 2010 년 배치에 들어 있으므로 응용 프로그램 관리자가 새 배치를 만들 때마다 응용 프로그램에서 해당 배치에 대한 새 테이블을 만들어야합니다. 스키마는 이미 데이터베이스에있는 기존 테이블과 훨씬 비슷하지만 테이블 이름은 변경됩니다. Hibernate를 사용하여이를 어떻게 수행합니까?

동적으로 필요한 XML 파일과 클래스를 어떻게 만듭니 까?

+0

파스칼의 대답을 확인하십시오 [여기] (http://stackoverflow.com/questions/3061846/hibernate-for-dynamic-table-creation) –

+6

새 테이블을 만드시겠습니까? 새 데이터를 추가 할 때 테이블을 복사하면 DB 디자인이 좋지 않습니다. 디자인을보다 관계형 DB 접근 방식으로 다시 생각해보십시오;) – Bogdan

+2

이것은 나쁜 디자인처럼 들립니다. 왜 일괄 처리 테이블을 만들고 예를 들어 학생에게 배치를 추가 할 수 없습니까? –

답변

2

만약 내가 당신의 문제를 올바르게 이해했다면, 나는 당신이 Hibernate Shards를 체크하고 싶다고 생각한다. 이 기능은 지원되지 않으며 실제로 테스트되지도 않고 유지 관리되지 않는 고급 기능입니다. 따라서, 당신의 책임하에 그것을 사용하십시오.

http://docs.jboss.org/hibernate/stable/shards/reference/en/html_single/#shards-strategy-shardselection

문서에서 :

우리는 이처럼, 많은 응용 프로그램 속성 기반 샤딩을 구현하려는 것으로 기대 당신은 "샤드 선택 전략"섹션에 특별한주의를 지불 할 수 있습니다 일기 예보를 저장하는 예제 애플리케이션은 보고서가 출현 한 대륙 별 보고서를 파기합니다.

그러나 다른 사람들은 다음과 같이 말합니다. 데이터. 정말 많은 양의 데이터가 필요할 때만하십시오. 2 백만 개의 기록이 그다지 그다지 없습니다.