title: Force Hibernate To Create Tables After Dropping and Recreating database
body: <p>I am developing a web application with java 2 ee. I also use hibernate and mysql.
  in order to restore the backup file, in some point in my application i need to drop the current database and recreate it, i do it as follow :</p>
  
  <pre><code>    Connection conn = (Connection) DriverManager.getConnection("jdbc:mysql://localhost/?user=user&amp;password=pass");
      Statement statement = (Statement) conn.createStatement();
      statement.executeUpdate("DROP DATABASE tcs;");
      statement.executeUpdate("CREATE DATABASE tcs charset=utf8 collate=utf8_persian_ci;");
  </code></pre>
  
  <p>after dropping and recreating i need to initialize database with default user (spring security user)  </p>
  
  <pre><code>    User admin = new User();
      UserAuthority ROLE_USER = new UserAuthority("ROLE_USER");
      ROLE_USER.save();
      admin.addUserAuthority(ROLE_USER);
      admin.setEnabled(true);
  
      admin.save();
  </code></pre>
  
  <p>but at the last line application throws this exception </p>
  
  <pre><code>Hibernate: insert into roles (authority) values (?)
  [DEBUG][16:19:17,734] [http-bio-8080-exec-10] NewPooledConnection:367  com.mchange.v2.c3p0.impl.NewPooledConnection@bcbe33a handling a throwable.
  com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Table 'tcs.roles' doesn't exist
  </code></pre>
  
  <p>i know hibernate creates tables at startup but in this case it fails to recreate the tables after a drop/recreate , so how can i force hibernate to create tables again? 
  or hypothetically is there something like <code>Hibernate.createTable(Class)</code> ?</p>