2014-03-30 15 views
8

Ich habe eine Feder-Anwendung mit Spring Boot-und Config-Annotationen konfiguriert.Spring mit eingebetteten Derby: Hibernate Dialekt Depreciation

JPA Konfiguration ist:

@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(); 
    } 
} 

ich konsequent in den Protokollen erhalten:

[...] 
HHH000400: Using dialect: org.hibernate.dialect.DerbyDialect 
HHH000430: The DerbyDialect dialect has been deprecated; use one of the version-specific dialects instead 
[...] 

Ich habe versucht, und fügte hinzu:

@Bean 
public DerbyTenSevenDialect jpaDialect() { 
    return new DerbyTenSevenDialect(); 
} 

aber dann die zurückgegebene Bohne ist nicht kompatibel mit:

LocalContainerEntityManagerFactoryBean lef //..... 
lef.setJpaDialect(JpaDialect); 

Wie kann ich die Verwarnungswarnung loswerden?

Antwort

7

Graben Sie einfach die folgende Zeile total (ohne es mit irgendetwas anderes zu ersetzen):

hibernateJpaVendorAdapter.setDatabase(Database.DERBY); 

Das ist alles, was ich tat und Hibernate korrekt angemeldet:

Using dialect: org.hibernate.dialect.DerbyTenSevenDialect 

Danach besteht keine Notwendigkeit, manuell ist Definieren der Dialect Bean. Hibernate findet den richtigen Dialekt selbst heraus

+0

Das reparierte es, danke. –

+0

@guido Großartig :)! – geoand