A MINHA DÚVIDA é que ao ser criado a tabela no banco, os atributos que estão na classe, são gravados fora da ordem. O Hibernate pega os atributos da classe de cima para baixo e cria no banco desta forma.
Exemplo: Tenho a classe Operacao com os atributos na seguinte ordem:
1- Nome;
2-dataCadastro.
No banco ele, ao criar a tabela, ele inverte essa ordem.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="hibernate.connection.url">jdbc:mysql://localhost/intrasur</property>
<property name="hibernate.connection.username">root</property>
<property name="hibernate.connection.password">15071991</property>
<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
<!-- Configurações de Pool de conexão do C3PO -->
<property name="c3po.min_size" >5</property>
<property name="c3po.max_size" >20</property>
<property name="c3po.timeout" >300</property>
<property name="c3po.max_statements" >50</property>
<property name="c3po.idle_test_period" >3000</property>
<!--Configurações de Debug -->
<property name="show_sql" >true</property>
<property name="format_sql" >true</property>
<property name="generate_statistics" >true</property>
<property name="use_sql_comments" >true</property>
<!-- Drop and re-create the database schema on startup-->
<property name="hbm2ddl.auto" >update</property>
<!-- Mapeamento das entidades -->
<mapping class="com.suporte.model.Usuario" />
<mapping class="com.suporte.model.Operacao" />
</session-factory>
</hibernate-configuration>
Código da Classe
import java.util.Calendar;
import java.util.Date;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
@Entity
@Table(name="operacao")
public class Operacao
{
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
private int codOperacao;
@Column
private String nome;
@Column
@Temporal(TemporalType.DATE)
private Date dataCadastro;
public Operacao(){
Calendar cal = Calendar.getInstance();
this.dataCadastro = cal.getTime();
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public Date getDataCadastro() {
return dataCadastro;
}
public void setDataCadastro(Date dataCadastro) {
this.dataCadastro = dataCadastro;
}
}