Java 冬眠不是';t在数据库中创建我的表

Java 冬眠不是';t在数据库中创建我的表,java,spring,hibernate,postgresql,maven,Java,Spring,Hibernate,Postgresql,Maven,在Spring/Maven项目的当前状态中,我有两个实体类,应该在postgresql数据库中创建。Hibernate配置类如下所示: @Configuration @EnableTransactionManagement @PropertySource({ "classpath:database.properties" }) @ComponentScan({ "spring.webapp.persistence" }) public class HibernateConfig { @A

在Spring/Maven项目的当前状态中,我有两个实体类,应该在postgresql数据库中创建。Hibernate配置类如下所示:

@Configuration
@EnableTransactionManagement
@PropertySource({ "classpath:database.properties" })
@ComponentScan({ "spring.webapp.persistence" })
public class HibernateConfig {

   @Autowired
   private Environment env;

   @Bean
   public LocalSessionFactoryBean sessionFactory() {
      LocalSessionFactoryBean sessionFactory = new LocalSessionFactoryBean();
      sessionFactory.setDataSource(restDataSource());
      sessionFactory.setPackagesToScan(new String[] { "spring.webapp.persistence.model" });
      sessionFactory.setHibernateProperties(hibernateProperties());

      return sessionFactory;
   }

   @Bean
   public DataSource restDataSource() {
      BasicDataSource dataSource = new BasicDataSource();
      dataSource.setDriverClassName(env.getProperty("jdbc.driverClassname"));
      dataSource.setUrl(env.getProperty("jdbc.url"));
      dataSource.setUsername(env.getProperty("jdbc.user"));
      dataSource.setPassword(env.getProperty("jdbc.pass"));

      return dataSource;
   }

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

      return txManager;
   }

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

   Properties hibernateProperties() {
      return new Properties() {
         /**
         * 
         */
        private static final long serialVersionUID = 1L;

        {
            setProperty("hibernate.hbm2ddl.auto", env.getProperty("hibernate.hbm2ddl.auto"));
            setProperty("hibernate.dialect", env.getProperty("hibernate.dialect"));
            setProperty("hibernate.globally_quoted_identifiers", "true");
         }
      };
   }
}
我的文件database.properties是:

jdbc.driverClassname=org.postgresql.Driver
jdbc.url=jdbc:postgresql://localhost:5432/maven_test?charSet=LATIN1
jdbc.user=klebermo
jdbc.pass=123
hibernate.dialect=org.hibernate.dialect.PostgreSQLDialect
hibernate.show_sql=true
hibernate.hbm2ddl.auto=create-drop
我通过pom.xml添加postgresql jdbc驱动程序,如下所示:

<dependency>
  <groupId>postgresql</groupId>
  <artifactId>postgresql</artifactId>
  <version>9.1-901.jdbc3</version>
  <scope>compile</scope>
</dependency>

postgresql
postgresql
9.1-901.jdbc3
编译

任何人都可以看到这个设置有什么问题吗?因为在我运行应用程序时,没有在数据库中创建任何表。

hibernate.hbm2ddl.auto=update而是创建drop 更新用于创建新表和更新旧表(如果有更改)


postgresql
postgresql
9.1-901-1.jdbc4

好的,我现在发现问题了。碰巧我在注释@ComponentScan中的路径错误。我修复了,现在表被正常创建。无论如何,感谢您的建议。

发布您的实体类(至少其中一个)您可以在此处看到所有实体类:您在日志中看到的任何错误都不会在日志中显示任何错误。请看这里:表的名称是什么?是的,我使用update进行了测试(实际上这是我第一次尝试),但也不起作用。postgresql postgresql 9.1-901-1.jdbc4试试这个。我也试试这个。在这里查看控制台的输出:表的名称是什么?
<dependency>
            <groupId>postgresql</groupId>
            <artifactId>postgresql</artifactId>
            <version>9.1-901-1.jdbc4</version>
        </dependency>