2017-04-17 20 views
1
@Configuration 
    @EnableJpaRepositories(basePackages = 
    "com.gmt.user",entityManagerFactoryRef = 
    "userEntityManager",transactionManagerRef = "userTransactionManager") 

    public class UserConfig { 


@Bean 
@Primary 
public LocalContainerEntityManagerFactoryBean userEntityManager(){ 
    LocalContainerEntityManagerFactoryBean em= new LocalContainerEntityManagerFactoryBean(); 
    em.setDataSource(userDatasource()); 
    em.setPackagesToScan(new String[]{"com.gmt.user"}); 

    HibernateJpaVendorAdapter vendorAdapter = new HibernateJpaVendorAdapter(); 
    em.setJpaVendorAdapter(vendorAdapter); 

    HashMap<String,Object> properties = new HashMap<String, Object>(); 
    properties.put("hibernate.hbm2ddl.auto","craete"); 
    properties.put("hibernate.dialect","org.hibernate.dialect.MySQL5Dialect"); 
    properties.put("hibernate.show_sql","true"); 
    em.setJpaPropertyMap(properties); 
    return em; 
} 

@Bean 
@Primary 
public DataSource userDatasource(){ 
    DriverManagerDataSource dataSource = new DriverManagerDataSource(); 
    dataSource.setDriverClassName("com.mysql.jdbc.Driver"); 
    dataSource.setUrl("jdbc:mysql://localhost:3306/schema_name"); 
    dataSource.setUsername("root"); 
    dataSource.setPassword("password12"); 
    return dataSource; 

} 

@Bean 
@Primary 
public PlatformTransactionManager userTransactionManager(){ 
    JpaTransactionManager jpaTransactionManager = new JpaTransactionManager(); 

    jpaTransactionManager.setEntityManagerFactory(userEntityManager().getObject()); 

    return jpaTransactionManager; 

} 

}SpringBoot應用程序運行正常,但休眠與MySQL相關的屬性不工作

這裏是我的SpringBoot應用

@SpringBootApplication 
    @ComponentScan(basePackages = "com.gmt") 
    @EnableAutoConfiguration(exclude = {DataSourceAutoConfiguration.class, 
    HibernateJpaAutoConfiguration.class}) 
    public class Client { 
    public static void main(String[] args){ 
    SpringApplication.run(Client.class,args); 

    System.out.println(" ***** Inside Spring Boot Application ***** "); 


    } 
    } 

,這裏是我的pom.xml

<?xml version="1.0" encoding="UTF-8"?> 
    <project xmlns="http://maven.apache.org/POM/4.0.0" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
    http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 

<groupId>Simple_Spring</groupId> 
<artifactId>Spring01</artifactId> 
<version>1.0-SNAPSHOT</version> 

<parent> 
    <groupId>org.springframework.boot</groupId> 
    <artifactId>spring-boot-starter-parent</artifactId> 
    <version>1.5.2.RELEASE</version> 
</parent> 

<dependencies> 
    <dependency> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-test</artifactId> 
    </dependency> 

    <dependency> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-data-jpa</artifactId> 
    </dependency> 

    <dependency> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-web</artifactId> 
    </dependency> 


    <dependency> 
     <groupId>mysql</groupId> 
     <artifactId>mysql-connector-java</artifactId> 
    </dependency> 

    <dependency> 
     <groupId>org.hibernate</groupId> 
     <artifactId>hibernate-core</artifactId> 
    </dependency> 
    <dependency> 
     <groupId>org.hibernate</groupId> 
     <artifactId>hibernate-entitymanager</artifactId> 
    </dependency> 
    <dependency> 
     <groupId>org.hibernate.javax.persistence</groupId> 
     <artifactId>hibernate-jpa-2.1-api</artifactId> 
     <version>1.0.0.Final</version> 
    </dependency> 
    <dependency> 
     <groupId>org.hibernate</groupId> 
     <artifactId>hibernate-validator</artifactId> 
    </dependency> 

</dependencies> 


<build> 

    <plugins> 

     <plugin> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-maven-plugin</artifactId> 
     </plugin> 
    </plugins> 
</build> 

而且我已經將模型類和相應的存儲庫放在同一個文件夾中。應用程序運行正常,沒有任何錯誤,但沒有連接到數據庫,也沒有在模式中創建表。請幫助我解決此問題。

+0

編輯springboot應用 – NaveeN

回答

1

你在這裏拼錯了hibernate.hbm2ddl.auto屬性值:

properties.put("hibernate.hbm2ddl.auto","craete"); 

它必須是create,但你必須把它設置爲craete

+0

謝謝你的回答,我糾正它「創造」,但它不工作仍在。 – NaveeN

0

在你的POM,如果您使用彈簧引導起動數據JPA沒有必要使用的<groupId>org.hibernate</groupId>的其他文物。 「spring-boot-starter-data-jpa」會將Hibernate作爲默認的JPA提供程序引入,這可能會引起依賴關係衝突,因此我也看到類似的問題。 所以你說沒有顯示錯誤?你調試過了嗎?

此外,在春季啓動youc的設置您的屬性:

spring.datasource.* 

春天開機JPA會隨時自動

要更改休眠特性,我們將使用前綴

`spring.jpa.properties.*` 

與休眠屬性名稱 在給定數據源URL的基礎上,spring boot可以自動識別數據源驅動程序類。所以我們不需要配置驅動類。

編輯1個________

#spring.datasource.driver-class-name=com.mysql.jdbc.Driver 
spring.datasource.url=jdbc:mysql://localhost:3306/concretepage 
spring.datasource.username=root 
spring.datasource.password= 
spring.datasource.tomcat.max-wait=20000 
spring.datasource.tomcat.max-active=50 
spring.datasource.tomcat.max-idle=20 
spring.datasource.tomcat.min-idle=15 

spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.MySQLDialect 
spring.jpa.properties.hibernate.id.new_generator_mappings = false 
spring.jpa.properties.hibernate.format_sql = true 

logging.level.org.hibernate.SQL=DEBUG 
logging.level.org.hibernate.type.descriptor.sql.BasicBinder=TRACE 
+0

我從pom.xml中刪除了「Spring-boot-starter-data-jpa」,我認爲數據源和休眠屬性不起作用,因爲我在我的主要springboot應用程序中明確地排除了它們。 – NaveeN

+0

而不是硬編碼的mysql和hiberante值,我把它放在application.properties文件中,但仍然不能解決我的問題。 – NaveeN

+0

這是錯誤我得到,如果我exlude DataSourceAutoConfiguration.class&HibernateJpaAutoConfiguration.class「描述: 無法確定數據庫類型無嵌入式數據庫驅動程序類 行動: 如果你想要一個嵌入式數據庫,請戴上一個支持的classpath。如果你有數據庫設置從一個特定的配置文件加載,你可能需要激活它(沒有配置文件當前處於活動狀態)。 「 – NaveeN

相關問題