2017-10-28 96 views
0

运行我的应用程序时出现以下错误。无法解析名称[org.hibernate.dialect.HSQDialect]作为策略[org.hibernate.dialect.Dialect]

我DataConfiguration文件

package com.book.data; 

import java.util.Properties; 

import javax.persistence.EntityManagerFactory; 
import javax.sql.DataSource; 

import org.springframework.context.annotation.Bean; 
import org.springframework.context.annotation.ComponentScan; 
import org.springframework.context.annotation.Configuration; 
import org.springframework.data.jpa.repository.config.EnableJpaRepositories; 
import org.springframework.jdbc.datasource.embedded.EmbeddedDatabaseBuilder; 
import org.springframework.jdbc.datasource.embedded.EmbeddedDatabaseType; 
import org.springframework.orm.jpa.JpaTransactionManager; 
import org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean; 
import org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter; 
import org.springframework.transaction.PlatformTransactionManager; 
import org.springframework.transaction.annotation.EnableTransactionManagement; 

@Configuration 
@ComponentScan("com.book.data") 
@EnableJpaRepositories("com.book.data") 
@EnableTransactionManagement 
public class DataConfiguration { 

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

    @Bean 
    public EntityManagerFactory entityManagerFactory() 
    { 
     HibernateJpaVendorAdapter vendorAdapter= new HibernateJpaVendorAdapter(); 
     vendorAdapter.setGenerateDdl(true); 
     Properties jpaProperties = new Properties(); 
     jpaProperties.put("hibernate.hbm2ddl.auto","create-drop"); 
     jpaProperties.put("hibernate.dialect","org.hibernate.dialect.HSQDialect"); 

     LocalContainerEntityManagerFactoryBean factory=new LocalContainerEntityManagerFactoryBean(); 
     factory.setDataSource(dataSource()); 
     factory.setPackagesToScan("com.book.data"); 
     factory.setJpaVendorAdapter(vendorAdapter); 
     factory.setJpaProperties(jpaProperties); 
     factory.afterPropertiesSet(); 
     return factory.getObject(); 

    } 

    @Bean 
    public PlatformTransactionManager transactionManager() 
    { 
     JpaTransactionManager txManager = new JpaTransactionManager(); 
     txManager.setEntityManagerFactory(entityManagerFactory()); 
     return txManager; 
    } 

} 

产生的原因:org.hibernate.boot.registry.selector.spi.StrategySelectionException:无法解析名称[org.hibernate.dialect.HSQDialect]作为策略[org.hibernate作为.dialect.Dialect] at org.hibernate.boot.registry.selector.internal.StrategySelectorImpl.selectStrategyImplementor(StrategySelectorImpl.java:126) at org.hibernate.boot.registry.selector.internal.StrategySelectorImpl.resolveStrategy(StrategySelectorImpl.java :194) at org.hibernate.boot.registry.selector.internal.StrategySelectorImpl.resolveDefaultableStrategy(StrategySelector Impl.java:152) at org.hibernate.boot.registry.selector.internal.StrategySelectorImpl.resolveDefaultableStrategy(StrategySelectorImpl.java:139) at org.hibernate.boot.registry.selector.internal.StrategySelectorImpl.resolveStrategy(StrategySelectorImpl。 java:133) at org.hibernate.engine.jdbc.dialect.internal.DialectFactoryImpl.constructDialect(DialectFactoryImpl.java:74) at org.hibernate.engine.jdbc.dialect.internal.DialectFactoryImpl.buildDialect(DialectFactoryImpl.java: 51) 在org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.initiateService(JdbcEnvironmentInitiator.java:137) 在org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.initiateService(JdbcEnvironmentInitiator.java:35) at org.hibernate.boot.registry.internal.StandardServiceReg istryImpl.initiateService(StandardServiceRegistryImpl.java:88) 在org.hibernate.service.internal.AbstractServiceRegistryImpl.createService(AbstractServiceRegistryImpl.java:259) ...... 69多个

回答

1

你有这个属性

jpaProperties.put("hibernate.dialect","org.hibernate.dialect.HSQDialect"); 

这意味着项目在类路径中应该有一个类org.hibernate.dialect.HSQDialect。你可以检查。

在Hibernate核心jar中有HSQLDialect类。

+0

我不好,我拼错了,HSQLDialect不是HSQDialect ..感谢方向 – JokerBean

+0

@JokerBean不客气。 –

相关问题