A propriedade 'hbm2ddl.auto' do Hibernate com o valor 'create' não está re-criando a tabela

Estou trabalhando no meuprimeira aplicação simples do Hibernate. O cerne do problema é que eu tinha renomeado um membro da classe persistente (com alterações do apt para todas as outras partes) e re-executar o aplicativo. Como a propriedade 'hbm2ddl.auto' é atribuída ao valor 'create' na configuração xml, espera-se que o Hibernate crie uma nova tabela em cada execução, mas não está fazendo isso. A seguir, informações detalhadas:

CLASSE:

    public class Event {
    private Long id;

    private String title;
    private Date date;

    public Event() {
        // this form used by Hibernate
    }

    public Event(String title, Date date) {
        // for application use, to create new events
        this.title = title;
        this.date = date;
    }

    public Long getId() {
        return id;
    }

    private void setId(Long id) {
        this.id = id;
    }

    public Date getDate() {
        return date;
    }

    public void setDate(Date date) {
        this.date = date;
    }

    public String getTitle() {
        return title;
    }

    public void setTitle(String title) {
        this.title = title;
    }
}

Event.hbm.xml:

<hibernate-mapping package="org.hibernate.tutorial.hbm">

<class name="Event" table="EVENTS">
    <id name="id" column="EVENT_ID">
        <generator class="increment"/>
    </id>
    <property name="date" type="timestamp" column="EVENT_DATE"/>
    <property name="title"/>
</class>

O hibernate.cfg.xml, entre outros, tem a seguinte entrada:

<property name="hbm2ddl.auto">create</property>

CLASSE PRINCIPAL:

public class EventManager {

public static void main(String[] args) {

    EventManager mgr = new EventManager();

    List events = mgr.listEvents();
for (int i = 0; i < events.size(); i++) {
    Event theEvent = (Event) events.get(i);
        System.out.println( "Event: " + theEvent.getTitle() + " Time: " + theEvent.getDate() );
    }

    HibernateUtil.getSessionFactory().close();

}

private List listEvents() {
    Session session = HibernateUtil.getSessionFactory().getCurrentSession();
    session.beginTransaction();
    List result = session.createQuery("from Event").list();
    session.getTransaction().commit();
    return result;
} }

O código acima está funcionando conforme o esperado. Apenas para testar a propriedade 'hbm2ddl.auto', eu mudei o membro 'title' na classe Event para 'title1'. E os métodos setter e getter atualizados e todas as referências (no mapeamento xml, classe Event e EventManager). Cumprido sem erros. Mas, quando tento executar o aplicativo, vejo a seguinte exceção:

Exceção na thread "main" org.hibernate.exception.SQLGrammarException: Coluna desconhecida 'event0_.title1' na 'lista de campos' em org.hibernate.exception.internal.SQLExceptionTypeDelegate.convert (SQLExceptionTypeDelegate.java:82) em org.hibernate. exception.internal.StandardSQLExceptionConverter.convert (StandardSQLExceptionConverter.java:49) em org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert (SqlExceptionHelper.java:125) em org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert ( SqlExceptionHelper.java:110) em org.hibernate.engine.jdbc.internal.proxy.AbstractStatementProxyHandler.continueInvocation (AbstractStatementProxyHandler.java:129) em org.hibernate.engine.jdbc.internal.proxy.AbstractProxyHandler.invoke (AbstractProxyHandler.java: 81) em $ Proxy6.executeQuery (Unknown Source) em org.hibernate.loader.Loader.getResultSet (Loader.java:1953) em org.hibernate.loader.Loader.doQuery (Loader.java:829) em org.hibernate. loader.Loader.doQueryAndInitializeNonLazyCollections (Loader.java:289) na organização .hibernate.loader.Loader.doList (Loader.java:2438) em org.hibernate.loader.Loader.doList (Loader.java:2424) em org.hibernate.loader.Loader.listIgnoreQueryCache (Loader.java:2254) em org.hibernate.loader.Loader.list (Loader.java:2249) em org.hibernate.loader.hql.QueryLoader.list (QueryLoader.java:470) em org.hibernate.hql.internal.ast.QueryTranslatorImpl.list ( QueryTranslatorImpl.java:355) em org.hibernate.engine.query.spi.HQLQueryPlan.performList (HQLQueryPlan.java:195) em org.hibernate.internal.SessionImpl.list (SessionImpl.java:1248) em org.hibernate.internal .QueryImpl.list (QueryImpl.java:101) em org.hibernate.tutorial.hbm.EventManager.listEvents (EventManager.java:56) em org.hibernate.tutorial.hbm.EventManager.main (EventManager.java:20) Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Coluna desconhecida 'event0_.title1' na 'lista de campos' em sun.reflect.NativeConstructorAccessorImpl.newInstance0 (Native Method) em sun.reflect.NativeConstructorAccessorImpl.newInstance (Unknown Sou rce) em sun.reflect.DelegatingConstructorAccessorImpl.newInstance (Unknown Source) em java.lang.reflect.Constructor.newInstance (Unknown Source) em com.mysql.jdbc.Util.handleNewInstance (Util.java:409) em com.mysql. jdbc.Util.getInstance (Util.java:384) em com.mysql.jdbc.SQLError.createSQLException (SQLError.java:1054) em com.mysql.jdbc.MysqlIO.checkErrorPacket (MysqlIO.java:3562) em com.mysql .jdbc.MysqlIO.checkErrorPacket (MysqlIO.java:3494) em com.mysql.jdbc.MysqlIO.sendCommand (MysqlIO.java:1960) em com.mysql.jdbc.MysqlIO.sqlQueryDirect (MysqlIO.java:2114) em com. mysql.jdbc.ConnectionImpl.execSQL (ConnectionImpl.java:2696) em com.mysql.jdbc.PreparedStatement.executeInternal (PreparedStatement.java:2105) em com.mysql.jdbc.PreparedStatement.executeQuery (PreparedStatement.java:2264) at sun .reflect.NativeMethodAccessorImpl.invoke0 (Native Method) em sun.reflect.NativeMethodAccessorImpl.invoke (Unknown Source) em sun.reflect.DelegatingMethodAccessorImpl.invoke (Unknown Source) em java.lang.reflect.Meth od.invoke (Unknown Source) no org.hibernate.engine.jdbc.internal.proxy.AbstractStatementProxyHandler.continueInvocation (AbstractStatementProxyHandler.java:122) ... mais 16

O erro está apontando para a classe EventManager na seguinte linha:

List result = session.createQuery("from Event").list();

Como a propriedade 'hbm2ddl.auto' é atribuída ao valor 'create' na configuração xml, espera-se que o Hibernate crie uma nova tabela em cada execução, mas não está fazendo isso. Por favor ajude a resolver o problema.

Desde já, obrigado.

questionAnswers(2)

yourAnswerToTheQuestion