Java Hibernate不自动生成表

Java Hibernate不自动生成表,java,spring,hibernate,spring-mvc,Java,Spring,Hibernate,Spring Mvc,阿伊 我正在制作一个简单的Spring MVC web应用程序。我可以很好地运行该应用程序,但如果我尝试登录,我会收到以下消息(我删除了所有我认为不相关的消息): 我的Hibernate持久化配置就在这里,它包括设置Hibernate属性: @Configuration @EnableTransactionManagement @PropertySource({ "/WEB-INF/persistence-mysql.properties" }) @Compone

阿伊

我正在制作一个简单的Spring MVC web应用程序。我可以很好地运行该应用程序,但如果我尝试登录,我会收到以下消息(我删除了所有我认为不相关的消息):

我的Hibernate持久化配置就在这里,它包括设置Hibernate属性:

    @Configuration
    @EnableTransactionManagement
    @PropertySource({ "/WEB-INF/persistence-mysql.properties" })
    @ComponentScan({ "com.LearnersLogger" })
    @Import({SpringConfiguration.class})
    public class PersistenceConfig {

        @Autowired
        private Environment env;

        @Autowired
        private DataSource dataSource;

        @Bean(name="sessionFactory")
        public LocalSessionFactoryBean sessionFactory() {
            LocalSessionFactoryBean sessionFactory = new LocalSessionFactoryBean();
            sessionFactory.setDataSource(dataSource);
            sessionFactory.setPackagesToScan("com.LearnersLogger");
            try {
                sessionFactory.setHibernateProperties(hibernateProperties());
            } catch (Exception e){
                System.out.println("Error with instantiating session factory");
                throw new RuntimeException(e);
            }

            return sessionFactory;
        }


        @Bean
        @Autowired
        public HibernateTransactionManager transactionManager(SessionFactory sessionFactory){

            HibernateTransactionManager htm = new HibernateTransactionManager();
            htm.setSessionFactory(sessionFactory);

            return htm;
        }

        @Bean
        @Autowired
        public HibernateTemplate getHibernateTemplate(SessionFactory sessionFactory){
            HibernateTemplate hibernateTemplate = new HibernateTemplate(sessionFactory);
            return hibernateTemplate;
        }

        public Properties hibernateProperties() {

            Properties properties = new Properties();
            properties.put("hibernate.hbm2dll.auto", this.env.getProperty("hibernate.hbm2ddl.auto"));
            properties.put("hibernate.dialect", this.env.getProperty("hibernate.dialect"));
            properties.put("hibernate.show", this.env.getProperty("hibernate.show_sql"));

            return properties;
        }

        @Bean
        public PersistenceExceptionTranslationPostProcessor exceptionTranslation(){
            return new PersistenceExceptionTranslationPostProcessor();
        }

    }
我的用户模型如下所示:

@Entity
@Table(name = "Users")
public class User implements Serializable{

    /**
     * 
     */
    private static final long serialVersionUID = 5729727545813781294L;

    public User(){

    }

    // various attributes typical to a User object model
}
我曾尝试将hibernate.hbm2ddl.auto更改为update、create和createdrop,但没有效果。
我的问题是,在我的应用程序无法自动生成表的情况下,我缺少了什么,或者是什么导致了问题

这里有一个输入错误,道具名称应该是hibernate.hbm2ddl.auto:

properties.put("hibernate.hbm2dll.auto", this.env.getProperty("hibernate.hbm2ddl.auto"));

这里有一个输入错误,道具名称应该是hibernate.hbm2ddl.auto:

properties.put("hibernate.hbm2dll.auto", this.env.getProperty("hibernate.hbm2ddl.auto"));

您可以尝试以下语句:
properties.put(“hibernate.hbm2ddl.auto”,“create”)
为了解决您的问题,您可以尝试以下语句:
properties.put(“hibernate.hbm2ddl.auto”,“create”)用于解决您的问题

很好。该死这就解决了问题。你知道什么好笑吗?我记得在StackOverflow上遇到了一个线程,OP犯了同样的错误,解决方案就是这个打字错误。我对此嗤之以鼻,排除了任何可能犯同样错误并继续下一个主题的机会。非常感谢你帮我发现了它(不客气。)属性的JPA版本更长,但可能更难错误键入:
jpaProperties.put(“javax.persistence.schema generation.database.action”,“create”)好。该死这就解决了问题。你知道什么好笑吗?我记得在StackOverflow上遇到了一个线程,OP犯了同样的错误,解决方案就是这个打字错误。我对此嗤之以鼻,排除了任何可能犯同样错误并继续下一个主题的机会。非常感谢你帮我发现了它(不客气。)属性的JPA版本更长,但可能更难错误键入:
jpaProperties.put(“javax.persistence.schema generation.database.action”,“create”)
properties.put("hibernate.hbm2dll.auto", this.env.getProperty("hibernate.hbm2ddl.auto"));