programing

입력 및 출력 db가 서로 다른 두 데이터베이스 서버에 있는 경우 Render Mapping을 사용할 수 있습니까?

megabox 2023. 9. 26. 22:13
반응형

입력 및 출력 db가 서로 다른 두 데이터베이스 서버에 있는 경우 Render Mapping을 사용할 수 있습니까?

테이블을 읽고 특정 필드를 다른 테이블로 이동하는 마이그레이션 프로젝트를 수행하고 있습니다.자바 클라이언트 앱이 자체적으로 소스 테이블을 읽고, 그 결과를 A/S에 삽입하는 방식으로 구현됩니다.Pojo그리고.POST그것을 이용하여 요청합니다.PojoREST 서버에 요청 기관으로, REST 서버는 다른 테이블에 쓰는 작업을 처리합니다.지금은 제가 사용하고 있습니다.JOOQ코드 생성 없이 소스 테이블에서 읽을 수 있도록 내 클라이언트 앱에서.사용하고 있습니다.String다음과 같이 테이블 열과 식별자 빌딩 API에 매핑할 리터럴(예를 선택합니다.

return ctx.select(field(name(ID)),
    field(name(CUSTOMER_ID)),
    field(name(SIZE)),
    field(name(NAME)),
    field(name(CONTENT)))
    .from(table(TABLE))
    .where((field(name(UPLOAD)).eq((byte) 0)));

여러 데이터베이스에서 동일한 테이블을 읽어야 하며, 또한 하나의 데이터베이스에 액세스할 수 있습니다.artifactoryJOOQ가 생성한 모든 테이블의 클래스를 포함합니다. 여기에는 제가 읽어야 할 클래스도 포함되어 있습니다.문제는 JOOQ에서 생성된 클래스가 특정 데이터베이스 서버에서 나온다는 것입니다.A그리고 내가 읽어야 할 테이블은 데이터베이스 서버에 있는 데이터베이스 안에 있습니다.B. 생성된 클래스를 사용하여 테이블을 읽으려고 했을 때artifactory, "Table이 존재하지 않습니다"라는 오류 메시지가 나타납니다.여기서 "Table"은 다른 데이터베이스 서버에서 JOOQ 생성에 사용된 데이터베이스 테이블을 의미합니다.제가 인터넷을 통해 인터넷 주소로 저장할 수 있는RenderMapping그것이 설정합니다.input서버의 데이터베이스로A그리고.output내가 지금 읽고 있는 서버에?구성했습니다.RenderMapping동일한 서버에 있는 두 데이터베이스 사이에 있지만, 두 개의 다른 데이터베이스 서버에서 작동하는지는 알 수 없습니다.여기서 제가 하려는 주된 것은 미리 생성된 JOOQ 클래스를 사용하는 것입니다.artifactory나만의 것을 만들지 않고 한 테이블에서 읽는 것.

상사의 다음 건의 후 문제를 해결할 수 있었습니다.별론으로Settings, 저 또한 사용해야만 했습니다.Configuration. 이와 같은 것:

Configuration jooqConfig = new DefaultConfiguration();

그런 다음 새 만들기Settings렌더 매핑을 사용합니다.

Settings jooqSettings = new Settings()
    .withRenderMapping(new RenderMapping().withSchemata(
        new MappedSchema().withInput(sourceDb).withOutput(outputDb)))
    .withRenderFormatted(true);

설정 지정 및SQLDialect로.jooqConfig

jooqConfig.set(jooqSettings);
jooqConfig.set(SQLDialect.MARIADB);

마지막으로, resources과 함께 해보는 것도

try (DSLContext ctx = DSL.using(jooqConfig.derive(getDataSource()))) {
  /* getDataSource() returns a HikariDataSource with output db credentials */
   do something, for ex., ctx.select()
}

JOOQ한테만 알려주면 사용할 수 있다고 합니다.sourceDBjooq 생성을 위한 소스 데이터베이스이고 내부에 jooq 플러그인을 추가할 필요가 없었기 때문에 모든 데이터베이스에 대한 스키마.pom.xml랑 JOOQ JOOQ 만 돼요.artifact관련 종속 관계

언급URL : https://stackoverflow.com/questions/54865716/is-it-possible-to-use-render-mapping-if-the-input-and-output-db-is-in-two-differ

반응형