mysql - Spring Boot 应用程序运行正常,但 hibernate 和 MySql 相关属性不起作用

标签 mysql hibernate maven intellij-idea spring-boot

    @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 应用程序

    @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>

我已将模型类和相应的存储库放在同一个文件夹中。应用程序正常运行,没有任何错误,但没有连接到数据库,也没有在模式中创建表。请帮助我解决这个问题。

最佳答案

您在此处拼错了 hibernate.hbm2ddl.auto 属性值:

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

它必须是create,但你已经将它设置为craete

关于mysql - Spring Boot 应用程序运行正常,但 hibernate 和 MySql 相关属性不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43450877/

相关文章:

php - 如何根据mysql中的计数获得排名

mysql - 创建 MySQL 和 SQLServer 兼容对象

mysql - ER_HOST_NOT_PRIVILEGED - docker 容器无法连接到 mariadb

java - 在hibernate中定义唯一键

tomcat - 使用 Maven Cargo 启动 Tomcat,当 Maven 完成时不停止

MySQL 并发和 auto_incrementing key

java - 如何在Spring框架中的Hibernate一对多关系中仅从父类获取json数据

java - 集合中的 Hibernate 集合

java - org.apache.http.NoHttpResponseException :localhost:2377 failed to respond

java - 如何让maven为每个版本的程序使用单独的目标文件夹?