Sinceramente non mi trovo con l'uso che fai del file di configurazione.

Prima di tutto non sfrutti l'hibernate.properties?

Io uso questo mapping:

codice:
<hibernate-configuration>
	<session-factory>
		<property name="connection.datasource">java:comp/env/jdbc/hibe</property>
		<property name="connection.datasource.removeAbandoned">true</property>
		<property name="connection.datasource.removeAbandonedTimeout">60</property>
		<property name="show_sql">true</property>
		<property name="transaction.factory_class">net.sf.hibernate.transaction.JDBCTransactionFactory</property>
		<property name="dialect">net.sf.hibernate.dialect.MySQLDialect</property>
		<property name="connection.autoReconnect">true</property>
		<property name="connection.autoReconnectForPools">true</property>
		<property name="connection.is-connection-validation-required">true</property>

        
        <mapping resource="Cat.hbm.xml"/>
   </session-factory>
</hibernate-configuration>
codice:
hibernate.dialect net.sf.hibernate.dialect.MySQLDialect
hibernate.connection.driver_class com.mysql.jdbc.Driver
hibernate.connection.url jdbc:mysql://localhost:3306/hibe
hibernate.connection.username root
hibernate.connection.password
Prova così.