Como mapear entidade a tabela na Primavera de dados JDBC?

Terça-feira:

Na Primavera de dados JPA podemos mapear uma entidade a uma tabela específica usando @Tableanotação onde podemos especificar esquema e nome.

Mas Primavera de dados JDBC usa um NamingStrategypara mapear uma entidade para um nome de tabela, convertendo o nome da classe entidades. Por exemplo, se temos a classe entidade nomeada MetricValue, em seguida, a tabela deve ser nomeado metricvalueno esquema padrão. Mas eu preciso mapear MetricValuea metric_valuetabela no appesquema.

Existe alguma maneira de substituir este mapeamento, anotação ou qualquer outro?

Kartoch:

O comportamento de nomeação é definida pela implementação padrão da interface NamingStrategy

De documentação de referência, seção 4.4.3 de versão 1.0.2 :

Quando você usa as implementações padrão de CrudRepository que a Primavera de dados JDBC fornece, eles esperam uma certa estrutura da tabela. Você pode ajustar isso, fornecendo um NamingStrategy em seu contexto de aplicação.

A implementação padrão tem o seguinte comportamento (de javadoc versão 1.0.2) :

O padrão é de nenhum esquema, nome de tabela baseado em classes e nome da coluna com base em RelationalPersistentProperty com partes do nome de ambos separados por '_'.

Portanto, criar um bean que implementa NamingStrategyem registrá-lo em seu contexto de aplicação.

Este é um exemplo de comentário @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";
            }
        };
    }
}

Acho que você gosta

Origin http://43.154.161.224:23101/article/api/json?id=168498&siteId=1
Recomendado
Clasificación