Я использую весеннюю загрузку 2 jpa, mysql db на заднем конце, у меня есть некоторые поля таблицы, которые требуют сохранения специальных символов.Я перепробовал много способов сделать это, но это просто не произошло,
это должно быть довольно просто, я мог видеть, как другие используют это, но по некоторым причинам это не работает для меня.
Значение Würtemberg
сохраняется как W�rtemberg
. Любая помощь будет признательна.
Ниже приведены способы, которые я пытался, но не смог заставить его работать,
вapplication.properties,
Путь 1: -
spring.datasource.url=jdbc:mysql://${global.database.host}:${global.database.port}/${global.database.schema}?useSSL=false&useUnicode=true&characterEncoding=UTF-8
путь 2 useUnicode = да в вышеупомянутом URL
путь 3
spring.jpa.properties.hibernate.connection.CharSet=UTF-8
spring.jpa.properties.hibernate.connection.characterEncoding=UTF-8
spring.jpa.properties.hibernate.connection.useUnicode=true
путь 4
spring.datasource.tomcat.connection-properties=useUnicode=true;characterEncoding=utf-8;
way 5
spring.datasource.url= jdbc:mysql://localhost:3306/database?useUnicode=yes&characterEncoding=UTF-8
connection.useUnicode=true
connection.characterEncoding=utf-8
hibernate.connection.useUnicode=true
hibernate.connection.characterEncoding=UTF-8
spring.datasource.sqlScriptEncoding=UTF-8
Но не повезло,
Любая идея, почему она не работает,
Я использую DatasourceConfiguration, как показано ниже,
@Slf4j
@Setter
@Configuration
public class DataSourceConfiguration {
@Value("${spring.datasource.tomcat.test-on-borrow}")
private boolean testOnBorrow;
@Value("${spring.datasource.tomcat.validation-query}")
private String validationQuery;
@Value("${global.database.host}")
private String dbHost;
@Value("${global.database.port}")
private Integer dbPort;
@Bean
@Primary
public DataSourceProperties dataSourceProperties() {
return new DataSourceProperties();
}
@Bean
@Primary
public DataSource dataSource() throws DockerException, InterruptedException {
if (StringUtils.isEmpty(dbHost) || dbPort == null) {
// some log
} else {
ServiceProbe probe = new ServiceProbe(2, TimeUnit.MINUTES);
try {
probe.probe(new IsTcpConnectionUp(dbHost, dbPort));
} catch (ServiceDownException e) {
throw new RuntimeException(e);
}
}
DataSourceProperties dsp = dataSourceProperties();
DataSourceBuilder dataSourceBuilder = dsp.initializeDataSourceBuilder();
DataSource ds = dataSourceBuilder.build();
if (ds instanceof org.apache.tomcat.jdbc.pool.DataSource) {
((org.apache.tomcat.jdbc.pool.DataSource) ds).setTestOnBorrow(testOnBorrow);
((org.apache.tomcat.jdbc.pool.DataSource) ds).setValidationQuery(validationQuery);
} else {
// some logs
}
return ds;
}
}