Hibernate gerando sql errado

Quando mando gravar usando hibernate ele gera um sql errado.

Tenho uma tabela chamada ‘empresas’ e olha só o sql q ele ta gerando.

Hibernate: select empresas_.empcnpj, empresas_.cnacodigo as cnacodigo0_, empresas_.empfantasia as empfanta3_0_, empresas_.emplogo as emplogo0_, empresas_.empmail as empmail0_, empresas_.emprazao as emprazao0_, empresas_.emptel as emptel0_, empresas_.endcep as endcep0_ from empresas empresas_ where empresas_.empcnpj=? 767 [main] WARN org.hibernate.util.JDBCExceptionReporter - SQL Error: 0, SQLState: 42703 767 [main] ERROR org.hibernate.util.JDBCExceptionReporter - ERRO: coluna empresas_.emprazao não existe

“ERRO: coluna empresas_.emprazao não existe”! É claro que não, o nome da tabela é ‘empresas’ e não ‘empresas_’.

Aqui segue o meu pojo

package br.com.jcounter.beans;

import java.io.Serializable;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;


/**
 *
 * @author Matheus
 */

@Entity
@Table(name="empresas")
public class empresas implements Serializable{

    @Id
    private String empcnpj;
    @Column
    private String endcep;
    @Column
    private int cnacodigo;
    @Column
    private String emprazao;
    @Column
    private String emptel;
    @Column
    private String empmail;
    @Column
    private String empfantasia;
    @Column
    private byte[] emplogo;

    /**
     * @return the empcnpj
     */
    public String getEmpcnpj() {
        return empcnpj;
    }

    /**
     * @param empcnpj the empcnpj to set
     */
    public void setEmpcnpj(String empcnpj) {
        this.empcnpj = empcnpj;
    }

    /**
     * @return the endcep
     */
    public String getEndcep() {
        return endcep;
    }

    /**
     * @param endcep the endcep to set
     */
    public void setEndcep(String endcep) {
        this.endcep = endcep;
    }

    /**
     * @return the cnacodigo
     */
    public int getCnacodigo() {
        return cnacodigo;
    }

    /**
     * @param cnacodigo the cnacodigo to set
     */
    public void setCnacodigo(int cnacodigo) {
        this.cnacodigo = cnacodigo;
    }

    /**
     * @return the emprazao
     */
    public String getEmprazao() {
        return emprazao;
    }

    /**
     * @param emprazao the emprazao to set
     */
    public void setEmprazao(String emprazao) {
        this.emprazao = emprazao;
    }

    /**
     * @return the emptel
     */
    public String getEmptel() {
        return emptel;
    }

    /**
     * @param emptel the emptel to set
     */
    public void setEmptel(String emptel) {
        this.emptel = emptel;
    }

    /**
     * @return the empmail
     */
    public String getEmpmail() {
        return empmail;
    }

    /**
     * @param empmail the empmail to set
     */
    public void setEmpmail(String empmail) {
        this.empmail = empmail;
    }

    /**
     * @return the empfantasia
     */
    public String getEmpfantasia() {
        return empfantasia;
    }

    /**
     * @param empfantasia the empfantasia to set
     */
    public void setEmpfantasia(String empfantasia) {
        this.empfantasia = empfantasia;
    }

    /**
     * @return the emplogo
     */
    public byte[] getEmplogo() {
        return emplogo;
    }

    /**
     * @param emplogo the emplogo to set
     */
    public void setEmplogo(byte[] emplogo) {
        this.emplogo = emplogo;
    }

   
}

Pq ele está gerando esse código errado?

 from  
         empresas empresas_

O ‘empresas_’ é o alias que ele gerou, a table continua sendo ‘empresas’.
A coluna citada no erro, ‘emprazao’, existe na table ‘empresas’?

Resolvido. realmente o nome da tabela estava errado é ‘emprazao’ estava errado no banco de dados.
Não percebi isso antes pq estranhei esse consulta sql que ele fez.
Porque ele colocou o nome da tabela na frente de cada coluna separado por um ponto(.)? E de onde ele tirou esse underline?

Grato!