programing

시간대 문제를 수정하기 위해 추가 파라미터를 MariaDB 연결 문자열에 전달하는 방법(예: useLegacyDatetimeCode)

projobs 2022. 9. 29. 21:59
반응형

시간대 문제를 수정하기 위해 추가 파라미터를 MariaDB 연결 문자열에 전달하는 방법(예: useLegacyDatetimeCode)

MariaDB 서비스를 사용하는 Swisscom AppCloud에 spring-boot 앱을 도입하려고 합니다.CloudFoundry 커넥터를 사용하여 앱에서 서비스가 자동으로 구성되고 연결이 정상적으로 작동합니다.

단, Java-Code에서 ZonedDateTime-Objects를 많이 사용하기 때문에 pom.xml에도 포함시켰습니다.

    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-java8</artifactId>
    </dependency>

...데이터베이스에 ZonedDateTimes를 적절히 보존합니다.

내 지역 MariaDB에서 잘 작동하는데...

    ...?useLegacyDatetimeCode=false

...접속 문자열(https://moelholm.com/2016/11/09/spring-boot-controlling-timezones-with-hibernate/ -> "BONUS TIP: MariaDB/MySQL에서 동작하기 위한 휴지 상태 설정 가져오기"에 대해 설명합니다).

Swisscom AppCloud의 MariaDB 서비스 연결에 이 플래그(다른 플래그도 포함)를 추가하려면 어떻게 해야 합니까?

CloudFoundry에서 Spring을 MariaDB 바인딩과 함께 사용하는 경우 데이터 소스는 다음 메커니즘에 의해 자동으로 설정됩니다.https://docs.cloudfoundry.org/buildpacks/java/spring-service-bindings.html

이 기능은 스프링 클라우드 커넥터 프로젝트를 통해 제공되며, 필요에 따라 커스터마이즈할있습니다.

테스트하지 않았습니다만, 다음과 같이 드라이버의 속성을 설정할 수 있습니다.

@Bean
public DataSource dataSource() {
    PoolConfig poolConfig = new PoolConfig(5, 30, 3000);
    ConnectionConfig connConfig = new ConnectionConfig("useLegacyDatetimeCode=false");
    DataSourceConfig dbConfig = new DataSourceConfig(poolConfig, connConfig);
    return connectionFactory().dataSource(dbConfig);
}

언급URL : https://stackoverflow.com/questions/42830126/how-to-pass-additional-parameters-to-mariadb-connect-string-to-fix-timezone-issu

반응형