带嵌入式德比的Spring:hibernate dialect弃用

gui*_*ido 8 spring hibernate jpa derby spring-annotations

我有一个配置了spring boot和config注释的spring应用程序.

JPA配置是:

@Configuration
@EnableTransactionManagement
@EnableJpaRepositories
public class JpaConfiguration {

    @Bean
    public DataSource dataSource() {
        return new EmbeddedDatabaseBuilder().setType(EmbeddedDatabaseType.DERBY).build();
    }

    @Bean
    public LocalContainerEntityManagerFactoryBean entityManagerFactory(DataSource dataSource,
            JpaVendorAdapter jpaVendorAdapter) {
        LocalContainerEntityManagerFactoryBean lef = new LocalContainerEntityManagerFactoryBean();
        lef.setDataSource(dataSource);
        lef.setJpaVendorAdapter(jpaVendorAdapter);
        lef.setPackagesToScan( /* "..." */ );
        return lef;
    }

    @Bean
    public JpaVendorAdapter jpaVendorAdapter() {
        HibernateJpaVendorAdapter hibernateJpaVendorAdapter = new HibernateJpaVendorAdapter();
        hibernateJpaVendorAdapter.setShowSql(true);
        hibernateJpaVendorAdapter.setGenerateDdl(true);
        hibernateJpaVendorAdapter.setDatabase(Database.DERBY);
        return hibernateJpaVendorAdapter;
    }

    @Bean
    public PlatformTransactionManager transactionManager() {
        return new JpaTransactionManager();
    }
}
Run Code Online (Sandbox Code Playgroud)

我一直在日志中:

[...]
HHH000400: Using dialect: org.hibernate.dialect.DerbyDialect
HHH000430: The DerbyDialect dialect has been deprecated; use one of the version-specific dialects instead
[...]
Run Code Online (Sandbox Code Playgroud)

我尝试添加:

@Bean
public DerbyTenSevenDialect jpaDialect() {
    return new DerbyTenSevenDialect();
}
Run Code Online (Sandbox Code Playgroud)

但是返回的bean与以下内容不兼容:

LocalContainerEntityManagerFactoryBean lef //.....
lef.setJpaDialect(JpaDialect);
Run Code Online (Sandbox Code Playgroud)

如何摆脱弃用警告?

geo*_*and 7

完全抛弃以下行(不用其他任何东西替换它):

hibernateJpaVendorAdapter.setDatabase(Database.DERBY);
Run Code Online (Sandbox Code Playgroud)

这就是我所做的和Hibernate正确记录的:

Using dialect: org.hibernate.dialect.DerbyTenSevenDialect
Run Code Online (Sandbox Code Playgroud)

之后,不需要手动定义Dialect Bean.Hibernate自己找出了正确的方言