[SPRING] Repository에 대한 특정 DataSource를 설정하는 방법?
SPRINGRepository에 대한 특정 DataSource를 설정하는 방법?
@Repository에 특정 데이터 소스를 할당 할 수 있습니까?
일반적으로 테스트 데이터 소스를 사용하려는 테스트 환경을 만들고 싶지만 일부 CrudRepository는 다른 DB (프로덕션 DB, 읽기 전용 작업)에서 작동해야합니다.
저장소에 명시 적으로 사용할 데이터 소스를 명시 적으로 말할 수 있습니까?
공용 인터페이스 MyRepository는 CrudRepository
해결법
-
==============================
1.@EnableJpaRepositories는 귀하의 질문에 대한 답변입니다. 이것은 비공식 문서에 따라 CrudRepository와 함께 작동해야합니다.
@EnableJpaRepositories는 귀하의 질문에 대한 답변입니다. 이것은 비공식 문서에 따라 CrudRepository와 함께 작동해야합니다.
이 방법에 대한 자세한 내용은이 자습서를 참조하십시오. 나는 당신이 그것을 훨씬 더 명확하게 언급 할 수 있기 때문에 여기에 코드를 올리려고 노력하지 않았다.
튜토리얼 링크 ...
-
==============================
2.DataSource와 JpaRepository는 모두 EntityManager에 연결됩니다. 당신은 당신의 요구 사항을 충족시키기 위해 리파지토리를 별도의 패키지로 분리해야 할 것입니다.
DataSource와 JpaRepository는 모두 EntityManager에 연결됩니다. 당신은 당신의 요구 사항을 충족시키기 위해 리파지토리를 별도의 패키지로 분리해야 할 것입니다.
다음은 그 예입니다.
<bean id="emf1" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean"> <property name="dataSource"> <bean .../> </property> ... </bean> <jpa:repositories base-package="org.example.package1" entity-manager-factory-ref="emf1"/> <bean id="emf2" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean"> <property name="dataSource"> <bean .../> </property> ... </bean> <jpa:repositories base-package="org.example.package2" entity-manager-factory-ref="emf2"/>
-
==============================
3.그것은 당신의 디자인에 달려 있습니다. 당신이 따라갈 수있는 다른 구현이 있기 때문입니다. 두 개의 데이터 소스에 대해 두 개의 bean을 선언 할 수 있습니다. 코드에서 어느 것을 명중 시킬지 지정하십시오. 그렇지 않으면 두 개의 다른 컨텍스트를 정의 할 수 있습니다. 그리고 당신이 전화를 걸 서비스를 코드에서 다시 지정해야하는 공유 된 컨텍스트. 첫 번째 접근법에 도움이 될 수있는 오래된 질문입니다.
그것은 당신의 디자인에 달려 있습니다. 당신이 따라갈 수있는 다른 구현이 있기 때문입니다. 두 개의 데이터 소스에 대해 두 개의 bean을 선언 할 수 있습니다. 코드에서 어느 것을 명중 시킬지 지정하십시오. 그렇지 않으면 두 개의 다른 컨텍스트를 정의 할 수 있습니다. 그리고 당신이 전화를 걸 서비스를 코드에서 다시 지정해야하는 공유 된 컨텍스트. 첫 번째 접근법에 도움이 될 수있는 오래된 질문입니다.
-
==============================
4.EntityManager를 선언 할 때 @PersistenceContext 어노테이션의 이름 속성을 설정하기 만하면된다.
EntityManager를 선언 할 때 @PersistenceContext 어노테이션의 이름 속성을 설정하기 만하면된다.
@PersistenceContext(name="persistence-unit-name") private EntityManager em;
from https://stackoverflow.com/questions/29397522/how-to-set-a-specific-datasource-for-a-repository by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] 다중 파일 파일 최대 크기 예외 - 스프링 부트 내장 된 바람둥이 (0) | 2019.04.08 |
---|---|
[SPRING] TestNG 및 Spring 3 (0) | 2019.04.08 |
[SPRING] CrudRepository findOne ()과 JpaRepository getOne ()의 차이점 (0) | 2019.04.08 |
[SPRING] RestEasy에 Spring beans 삽입하기 (0) | 2019.04.08 |
[SPRING] Spring, Hibernate 및 LocalSessionFactoryBuilder를 사용하여 sessionFactory를 구성하십시오. (0) | 2019.04.08 |