Gerando Tabelas no Oracle via Hibernate

Olá Pessoal,

Tenho um projeto no Eclipse fazendo a persistencia por Hibernate, criei as classes, fiz o mapeamento por annotation e como teste rodei o código abaixo GeraBanco.java(Codigo 1), para criar as tabelas em um BD MySQL. Funcionou tudo correto, inclusive persisti dados nas tabelas.
Então eu alterei a configuração do Hibernate (Codigo 2) para trabalhar com o Oracle XE 11. Ao executar o GeraBanco.java a maioria das tabelas não são geradas, no log eu recortei e copiei o SQL gerado pelo Hibernate (Código3) no console do Oracle SQL e o seguinte erro é exibido (Codigo 4), para funcionar eu tive que alterar manualmente o código desta maneira (Código 5).
O que pode ser? há algum erro na configuração do Hibernate?

Código 1 - Classe utilizada para gerar o BD automaticamente.

public class GeraBanco {
	public static void main(String[] args) {
	Configuration conf = new AnnotationConfiguration();
	conf.configure();
	SchemaExport se = new SchemaExport(conf);
	se.create(true, true);
	}
}

Código 2 - Configuração do Hibernate para utilizar o Oracle

<?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">oracle.jdbc.OracleDriver</property>
        <property name="hibernate.connection.url">jdbc:oracle:thin:@192.168.137.129:1521/XE</property>
        <property name="hibernate.connection.username">MJSED102</property>
		<property name="hibernate.connection.password">123456</property>        
        <property name="hibernate.dialect">org.hibernate.dialect.Oracle10gDialect</property>
        <property name="hibernate.hbm2ddl.auto">update</property>
        <property name="hibernate.show_sql">true</property>
		<property name="hibernate.format_sql">true</property>
		<mapping class="estruturaCTe.InfCte"/>
		<mapping class="estruturaCTe.Compl"/>
		<mapping class="estruturaCTe.Ide"/>
		<mapping class="estruturaCTe.Toma03"/>
		<mapping class="estruturaCTe.Emit"/>
		<mapping class="estruturaCTe.EnderEmit"/>
		<mapping class="estruturaCTe.Rem"/>
    </session-factory>
</hibernate-configuration>

Código 3 - SQL gerado automaticamente pelo Hibernate, que não cria a tabela.

    create table Rem (
        CNPJ varchar2(255 char),
        CPF varchar2(255 char),
        IE varchar2(255 char),
        CEP varchar2(255 char),
        UF varchar2(255 char),
        cMun number(10,0) not null,
        cPais number(10,0) not null,
        nro varchar2(255 char),
        xBairro varchar2(255 char),
        xCpl varchar2(255 char),
        xLgr varchar2(255 char),
        xMun varchar2(255 char),
        xPais varchar2(255 char),
        fone varchar2(255 char),
        xFant varchar2(255 char),
        xNome varchar2(255 char),
        infCte_fk varchar2(255 char) not null,
        primary key (infCte_fk),
        unique (infCte_fk)
    )

Código 4 - Erro apresentado no console do Oracle ao executar o SQL gerado pelo Hibernate

ORA-02261: esta chave exclusiva ou primária já existe na tabela

Código 5 - SQL alterado manualmente para criar tabelas, agora funciona.

CREATE TABLE  "EMIT" 
   (	"CNPJ" VARCHAR2(255 CHAR) NOT NULL ENABLE, 
	"IE" VARCHAR2(255 CHAR), 
	"CEP" VARCHAR2(255 CHAR), 
	"UF" VARCHAR2(255 CHAR), 
	"CMUN" NUMBER(10,0) NOT NULL ENABLE, 
	"CPAIS" NUMBER(10,0) NOT NULL ENABLE, 
	"FONE" VARCHAR2(255 CHAR), 
	"NRO" VARCHAR2(255 CHAR), 
	"XBAIRRO" VARCHAR2(255 CHAR), 
	"XCPL" VARCHAR2(255 CHAR), 
	"XLGR" VARCHAR2(255 CHAR), 
	"XMUN" VARCHAR2(255 CHAR), 
	"XPAIS" VARCHAR2(255 CHAR), 
	"XFANT" VARCHAR2(255 CHAR), 
	"XNOME" VARCHAR2(255 CHAR), 
	"INFCTE_FK" VARCHAR2(255 CHAR) NOT NULL ENABLE, 
	 PRIMARY KEY ("INFCTE_FK", "CNPJ") ENABLE, 
	 UNIQUE ("INFCTE_FK") ENABLE
   ) ;ALTER TABLE  "EMIT" ADD CONSTRAINT "FK2103F380DCA897" FOREIGN KEY ("INFCTE_FK")
	  REFERENCES  "INFCTE" ("ID") ENABLE;

At
Wallfox

Camarada, não estou bem certo, mas provavelmente o erro se dê por estar tentando fazer da PK um unique.
Note que quando você alterou manualmente, fez com que a PK ficasse composta.

drsmachado,

É realmente, pode ser sim. Você tem ideia de como resolver isso e o próprio Hibernate criar as tabelas corretamente?

Grato,
Wallfox