2015-01-07 3 views
0

현재 사용자를 데이터베이스 테이블 (HSQL)에 보관할 단일 페이지 응용 프로그램과 "스토리"목록 (단 1 개의 라이너)를 별도의 테이블에 저장하십시오. (같은 DB에 있음)JPA + hibernate + spring, 동일한 DB에 2 개의 별개 테이블

2 개의 POJO, User and Story가 있습니다. 그럼 2 dtos, 2 리포 지 토리 등 2 테이블에 이들을 유지하는 방법을 알아 내려고 고군분투 오전 ...

기본적으로 나는 2 개의 persistence-units과 2 entityManagerFactory가 필요한지 여부를 알고 싶다. 하나의 데이터베이스이지만 2 개의 테이블로 ... 주위를 둘러 보았을 때처럼 보이지만 문제의 일부는 내가 어떤 용어와 혼동을 느낀다는 것입니다.

여러 테이블과 관련하여 많은 질문이 있지만 항상 다른 데이터 소스에있는 것처럼 보입니다. 이 문맥에서 데이터 소스는 단순히 테이블입니까? 즉 동일한 데이터베이스이지만 다른 테이블 (데이터 소스라고도 함)에 계속 적용됩니다. 그렇지 않은 경우 "데이터 원본"과 "데이터베이스"는이 문맥에서 교환 가능합니까?

감사합니다.

답변

0

데이터 소스는 임의의 데이터 수집을 추상화 한 것입니다. 정기적 인 경우 스키마가 데이터 소스가 될 수 있습니다. 데이터 소스 세분성은 전적으로 당신에게 달려 있지만, 더 거친 데이터 소스가 더 좋은 디자인을 가지고 있다고 생각합니다. 따라서 persistence unitEntityManagerFactory 중 하나가 필요합니다. 간단한 시나리오에서 콩을 다음과 같이 정의 할 수 있습니다.

<bean id="datasource" 
      class="org.springframework.jdbc.datasource.DriverManagerDataSource" 
      p:url="datasource url" 
      p:username="your uname" 
      p:password="your pass" 
      p:driverClassName="dirver name"/> 

    <bean id="persistenceProvider" 
      class="org.hibernate.jpa.HibernatePersistenceProvider"/> 

    <bean id="entityManagerFactory" 
      class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean" 
      p:packagesToScan="your model packages" 
      p:dataSource-ref="datasource" 
      p:persistenceProvider-ref="persistenceProvider" /> 
+0

데이터 소스에 대한 설명에 감사드립니다. persistence-unit에 관해서는 하나는 괜찮지 만, 어떻게 2 개의 다른 테이블을 참조 할 수 있습니까? – Phil

+0

전통적인 '4-tier'아키텍처에서는 다른 테이블을 나타내는 '모델'을 정의한 다음 '데이터 액세스 레이어'에 데이터 액세스 기능을 넣고 '서비스 레이어'에 이러한 기능을 결합합니다. 일반적으로 Service Layer 메소드는'Transactional'입니다. Spring을 사용할 계획이라면, 스프링 문서가이 주제에 대해 훌륭한 작업을 수행했다. [체크 아웃]해야합니다 (http://docs.spring.io/spring/docs/current/spring-framework-reference/htmlsingle/). 또한 일반적인 데이터 액세스 기능을 제공하는 [Spring-Data] (http://projects.spring.io/spring-data-jpa/) 프로젝트를 확인하십시오 –