java - Spring 4 + Hibernate 4 集成。表不会自动创建

标签 java spring hibernate

我几天前开始使用Spring,由于某种原因我无法让Hibernate自动创建表实体(我在其他项目中使用过几次hibernate,所以我知道它有这个功能) 。我该如何解决?我附加了一些可能有用的代码。

HibernateConfiguration.class

@Configuration
@EnableTransactionManagement
@ComponentScan("br.com.jeffersontpadua.spring.config")
@PropertySource(value = {"classpath:application.properties"})
public class HibernateConfiguration {
    @Autowired
    private Environment environment;

    @Bean
    public LocalSessionFactoryBean sessionFactory() {
        LocalSessionFactoryBean sessionFactory = new LocalSessionFactoryBean();

        sessionFactory.setDataSource(dataSource());
        sessionFactory.setPackagesToScan("br.com.jeffersontpadua.spring.model");
        sessionFactory.setHibernateProperties(hibernateProperties());

        return sessionFactory;
    }

    @Bean
    public DriverManagerDataSource dataSource() {
        DriverManagerDataSource dataSource = new DriverManagerDataSource();

        dataSource.setDriverClassName(environment.getRequiredProperty("jdbc.driverClassName"));
        dataSource.setUrl(environment.getRequiredProperty("jdbc.url"));
        dataSource.setUsername(environment.getRequiredProperty("jdbc.username"));
        dataSource.setPassword(environment.getRequiredProperty("jdbc.password"));

        return dataSource;
    }

    private Properties hibernateProperties() {
        Properties properties = new Properties();

        properties.put("hibernate.dialect", environment.getRequiredProperty("hibernate.dialect"));
        properties.put("hibernate.show_sql", environment.getRequiredProperty("hibernate.show_sql"));
        properties.put("hibernate.format_sql", environment.getRequiredProperty("hibernate.format_sql"));
        properties.put("hibernate.hbm2dll.auto", environment.getRequiredProperty("hibernate.hbm2dll.auto"));

        System.out.println("Hibernate config: " + environment.getRequiredProperty("hibernate.hbm2dll.auto"));

        return properties;
    }

    @Bean
    @Autowired
    public HibernateTransactionManager transactionManager(SessionFactory sessionFactory) {
        HibernateTransactionManager transactionManager = new HibernateTransactionManager();

        transactionManager.setSessionFactory(sessionFactory);

        return transactionManager;
    }
}

应用程序属性

jdbc.driverClassName = com.mysql.jdbc.Driver
jdbc.url = jdbc:mysql://localhost:3306/coaching_works
jdbc.username = root
jdbc.password = 1234
hibernate.dialect = org.hibernate.dialect.MySQLDialect
hibernate.format_sql = true
hibernate.show_sql = true
hibernate.hbm2dll.auto = update

Costumer.java

@Entity
@Table(name = "costumer")
public class Costumer {
    @Id
    @GeneratedValue
    @Column(name = "id", nullable = false, updatable = false, unique = true)
    private int id;

    @Column(name = "full_name", nullable = false, length = 160)
    private String fullName;

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getFullName() {
        return fullName;
    }

    public void setFullName(String fullName) {
        this.fullName = fullName;
    } 
}

最佳答案

您有一个拼写错误:该属性名为 hibernate.hbm2ddl.auto(..ddl.. 不是 ..dll..)

关于java - Spring 4 + Hibernate 4 集成。表不会自动创建,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41051758/

相关文章:

javascript - 如何将带有tinestamp等的CSV文件输入到mahout中实现相似度等功能?

spring - 在 Spring 中映射/到 root

java - ZeroDateTimeBehavior=convertToNull 在使用 hibernate 的 jdbc url 中不起作用

java - Tomcat 与 Hibernate 的池化问题。 MySQL超时

java - MySQL语法错误异常

java - 解析配置时出错java.io.FileNotFoundException :

java - 可以在子类或子对象中访问 protected 变量

java - 出现错误 --- 无法对 PLSQL 语句执行 fetch : next

java - 嵌套对象列表的 Spring 配置属性元数据 json

java - 将列映射到映射 hibernate