Grails 애플리케이션에서 2 개의 데이터 소스를 구성 할 수 있는지 궁금 해서요. 하나는 읽기 전용 액세스 권한 (선택)이고 다른 하나는 읽기 - 쓰기 액세스 권한 (create , 삽입, 업데이트 ..) 2.0 이전 앱의groovy에서 서로 다른 권한을 가진 2 개의 다른 데이터 소스를 가질 수 있습니까?
답변
에서 문서를 참조 예 당신은 할 수 있지만 - 내 경험에서 - 일부 조건/제한 사항이 당신은 알고 있어야합니다.
- 이 알고 : 이 Grails 2 can't login with spring security when using multiple databases
문서 http://grails.org/doc/2.0.0.RC1/guide/conf.html#multipleDatasources 당신은 도메인 매핑을 통해 또는 서비스와 정적 "데이터 소스"속성을 사용하여 두 데이터 소스 사이를 전환 할 수 있다고 말한다.
도메인 매핑이 작동하지만 서비스만으로는 작동하지 않으며 문서를 해석하는 방식으로도 할 수 있어야합니다.
2.1 Datasources.groovy에서 데이터 소스 정의 : 도메인 모델에서 사용할 데이터 소스를 올바르게 선언하면 어떤 방식 으로든 작동합니다. 데이터 소스를 알 수없는 경우 bookInstance.db1.save() 또는 bookInstance.db2.save()
OR을 :뿐만 아니라, 여러 데이터 소스를 사용하여 다음 컨트롤러에 사용할 데이터 소스 지정 도메인을 선언 =
데프 DS를 "DB1"// 또는 당신이 원하는 무엇이든, DB1, DB2, DB3 ... bookstance로 설정 "$ DS".save()
을 : 손 전에이 작업을 수행 할 수 있습니다. 하지만 데이터 소스를 선언하기 위해 서비스를 사용하려는 경우에는 전혀 작동하지 않습니다.
정적 데이터 소스 = "DB1"이 Grails의 서비스에서 나를 위해 일하지 않은 것, 아무리
.
2.2 기본 데이터베이스에 데이터 소스를 선언하고 런타임에 다른 데이터 소스를 주입하십시오. 설명서에는 런타임에 새로운 데이터 소스 빈을 주입 할 수 있다고 나와 있습니다. 그리고 당신은 할 수 있습니다,하지만 Grails에 의해 선택되지 않습니다. Grails가 새롭게 삽입 된 데이터 소스 빈을 인식 할 수 없었습니다. 나는이 설명하는 두 가지 주요 이슈에 나는 공식 문서를 가리 몇 군데를 보았다
- 1. 동일한 이름을 가진 두 개의 다른 변수를 가질 수 있습니까?
- 2. 2 개의 계정이 2 개의 서로 다른 마스터 페이지를 참조합니까?
- 3. asp.net GridView는 두 개의 데이터 소스를 가질 수 있습니까?
- 4. 서로 다른 폴더에있는 경우 동일한 이름을 가진 두 개의 클래스를 가질 수 있습니까?
- 5. div의 배경을 서로 다른 두 개의 이미지가 2 개의 다른 %로 채워지도록 설정할 수 있습니까?
- 6. 서로 다른 인코딩으로 인코딩 된 두 개의 다른 문자열이 동일한 바이트 시퀀스를 가질 수 있습니까?
- 7. Silverlight에서 데이터 항목에 2 개의 다른 항목 소스를 바인딩하십시오.
- 8. dataprovider가있는 datagrid가 다른 dataprovider를 가진 하나의 열을 가질 수 있습니까?
- 9. 커널 함수가 서로 다른 가상 주소를 가질 수 있습니까?
- 10. Entity Framework 4는 두 개의 서로 다른 데이터 소스를 처리 할 수 있습니까?
- 11. BaseExpandable 서로 다른 배경을 가진 다른 그룹들
- 12. 두 개의 다른 데이터 유형을 가진 2 차원 배열?
- 13. 두 개의 테이블에 서로 다른 데이터 삽입
- 14. 레일 - 두 개의 서로 다른 하위 항목을 가질 수있는 모델
- 15. 서로 다른 수의 열을 가진 두 개의 쿼리 결합
- 16. 두 개의 배열에 서로 다른 값을 가진 요소를 가져옵니다.
- 17. SQL 수 두 개의 서로 다른 열
- 18. C#의 WCF 서비스는 서로 다른 액세스 권한을 가진 다른 클라이언트 소비자에게 다른 데이터를 보내야합니다.
- 19. HABTM 2 테이블 2 개의 서로 다른 관계
- 20. 동일한 역할을 가진 사용자가 어떻게 다른 권한을 가진 다른 게시물에 액세스 할 수 있습니까?
- 21. EaselJS - 서로 다른 FPS를 가진 두 개의 캔버스가 있음
- 22. UITableView에서 높이가 다른 셀을 가질 수 있습니까?
- 23. 다른 컨텍스트를 가진 확장 프로그램은 서로 통신 할 수 있습니까?
- 24. MySQL이 서로 다른 테이블에서 2 개의 값을 가져옵니다.
- 25. 다른 값을 가진 다른 서버를 목표로하십시오.
- 26. 동기화 할 데이터 유형이 다른 구조가 다른 2 개의 다른 데이터베이스에 2 개의 테이블
- 27. 오라클 10g - 다른 사용자 권한을 가진 두 개의 뷰를 연결
- 28. ASP.NET MVC에서 서로 다른 모델, 동일한 데이터
- 29. 두 개의 서로 다른 행에 구문이 있습니까?
- 30. 두 개의 다른 DN 영역을 가질 수 있습니까?
하지만 충분하지 피드백 - 그래서, 데이터 소스는 Datasource.grooy
에를 미리 선언해야합니다. @burtbeckwith, 서비스에서 데이터 소스 선언이 작동하지 않는 이유에 대해 알고 있습니까? 또한, 내가 설명서를 읽는 방법, 나는 올바른 서비스를 호출하기 전에 서비스에 정적 데이터 속성을 설정할 수 있어야합니다. – Kyle