Поведение именования определяется реализацией интерфейса по умолчанию NamingStrategy
Из справочной документации, раздел 4.4.3 версии 1.0.2 :
Когда вы используете стандартные реализации CrudRepository, Spring Data
JDBC обеспечивает, они ожидают определенной структуры таблицы. Вы можете настроить это,
предоставление NamingStrategy в контексте вашего приложения.
Реализация по умолчанию имеет следующее поведение (из версии 1.0.2 javadoc) :
По умолчанию отсутствует схема, имя таблицы на основе класса и имя столбца на основе
RelationalPersistentProperty с именными частями обоих, разделенных '_'.
Итак, создайте bean-компонент, который реализует NamingStrategy
, чтобы зарегистрировать его в контексте вашего приложения.
Это пример из комментария @keddok:
@Configuration
@EnableJdbcRepositories
public class MetricStoreRepositoryConfig extends JdbcConfiguration {
@Autowired
private DataSource dataSource;
@Bean
NamedParameterJdbcOperations operations() {
return new NamedParameterJdbcTemplate(dataSource);
}
@Bean
PlatformTransactionManager transactionManager() {
return new DataSourceTransactionManager(dataSource);
}
@Bean
NamingStrategy namingStrategy() {
return new NamingStrategy() {
@Override
public String getSchema() {
return "metric";
}
};
}
}