Java Hibernate不自动生成表
阿伊 我正在制作一个简单的Spring MVC web应用程序。我可以很好地运行该应用程序,但如果我尝试登录,我会收到以下消息(我删除了所有我认为不相关的消息): 我的Hibernate持久化配置就在这里,它包括设置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
@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"));