내가이 멀티 테넌트 (multi-tenant) 응용 프로그램이 있고 난 변화 런타임 그래서 거 공유 할 수 있습니다 DB 별도의 스키마 SaaS는 디자인의 스키마 이름이 필요 콜백.은 EclipseLink 변화 스키마는
왜냐하면 EntityManagerFactory를 작성하는 것이 매우 비싸기 때문에 EntityManger를 시작한 후에 모든 DB 호출 전에 스키마를 지정하고 EMF 응용 프로그램 범위를 만들고 싶습니다. Postgresql 8.1 Postgresql은 DB 연결 설정시 스키마 선택을 지원하지 않기 때문에 다른 스키마의 테이블에서 쿼리하는 유일한 방법은 'SET'을 검색하는 것입니다. search_path = "my.schema" ' 필요한 DB 호출을 만든다.
나는 시도했다.
StringBuilder sb = new StringBuilder();
sb.append("SET search_path TO my.schema");
entityManager_.createNativeQuery(sb.toString()).executeUpdate();
내가 java.lang.IllegalStateException를 '말하는 예외를 가지고 : 당신은이 쿼리에 executeUpdate의()를 호출 할 수 없습니다. 그것은
내가이 작업이 완료 얻을 수있는 어쨌든이 잘못된 쿼리 유형을 PersistenceProvider로 내가 는 EclipseLink을 사용하고 '
및 애플리케이션 매니저로 글래스 피쉬입니까? 당신이 세입자 당 스키마를하고있는 때문에 미리
어땠습니까? 아직도 주변에 있습니까? –