SchemaUpdate:155 - Unsuccessful: alter table

Bom dia/tarde/noite…

Estou utilizando o spring 2.5 (transaction,security,mail,core)+ Hibernate + JSF1.2 e quando a aplicação sobe no jboss com o schema UPDATE do hibernate o log do servidor aparece alguns erros de atualização das tabelas do meu banco e não sei pq está aparecendo este erros…

2010-10-08 09:17:31,106 INFO  [STDOUT] 09:17:31,103 DEBUG SchemaUpdate:149 - alter table ACAO add constraint FK1E8FD0D161E9F6 foreign key (ID_STATUS) references Status
2010-10-08 09:17:31,159 INFO  [STDOUT] 09:17:31,157 ERROR SchemaUpdate:155 - Unsuccessful: alter table ACAO add constraint FK1E8FD0D161E9F6 foreign key (ID_STATUS) references Status
2010-10-08 09:17:31,160 INFO  [STDOUT] 09:17:31,159 ERROR SchemaUpdate:156 - ORA-02275: such a referential constraint already exists in the table
2010-10-08 09:17:31,163 INFO  [STDOUT] 09:17:31,160 DEBUG SchemaUpdate:149 - alter table ACAO add constraint FK1E8FD013A77FE9 foreign key (ID_TIPO_ACAO) references TIPO_ACAO
2010-10-08 09:17:31,170 INFO  [STDOUT] 09:17:31,168 ERROR SchemaUpdate:155 - Unsuccessful: alter table ACAO add constraint FK1E8FD013A77FE9 foreign key (ID_TIPO_ACAO) references TIPO_ACAO
2010-10-08 09:17:31,171 INFO  [STDOUT] 09:17:31,170 ERROR SchemaUpdate:156 - ORA-02275: such a referential constraint already exists in the table
2010-10-08 09:17:31,173 INFO  [STDOUT] 09:17:31,172 DEBUG SchemaUpdate:149 - alter table ADVOGADO add constraint FK48F6B01D161E9F6 foreign key (ID_STATUS) references Status
2010-10-08 09:17:31,179 INFO  [STDOUT] 09:17:31,178 ERROR SchemaUpdate:155 - Unsuccessful: alter table ADVOGADO add constraint FK48F6B01D161E9F6 foreign key (ID_STATUS) references Status
2010-10-08 09:17:31,181 INFO  [STDOUT] 09:17:31,179 ERROR SchemaUpdate:156 - ORA-02275: such a referential constraint already exists in the table
2010-10-08 09:17:31,182 INFO  [STDOUT] 09:17:31,181 DEBUG SchemaUpdate:149 - alter table ANDAMENTO add constraint FKCC6C37875D891CE9 foreign key (ID_SITUACAO_PROCESSO) references SITUACAO_PROCESSO
2010-10-08 09:17:31,187 INFO  [STDOUT] 09:17:31,185 ERROR SchemaUpdate:155 - Unsuccessful: alter table ANDAMENTO add constraint FKCC6C37875D891CE9 foreign key (ID_SITUACAO_PROCESSO) references SITUACAO_PROCESSO

O erro no log ocorre em todas as tabelas do meu banco porem não impede o funcionamento do sistema e tudo funciona perfeitamente.
estou estranhando este comportamento do hibernate não sei se é um nivel do log mais detalhado ou se é algum problema de configuração… nestá aplicação eu configuro o hibernate atraves do spring…

Tenho outra aplicação com Vraptor + hibernate e não ocorre este erros no LOG.
Alguem já passou por isto ou sabe se é normal estes logs de erro ???

Pelo que parece vc está violando as chaves estrangeiras na atualização das tabelas. Não utilizo Spring, mas o que parece é isso.
O VRaptor pode não mostrar esses erros talvez devido a configuração do log.

Quando eu subo a aplicação com o schema CREATE do hibernate estes erros não aparecem, quando eu mudo para UPDATE e subo de novo não sei pq ele tenta refazer as fk das tabelas, ai o oracle manda o erro falando que a fk já existe… agora queria saber se faltou alguma configuração ou se isso é normal ??

arquivo de configuração do spring:

	<bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">  
      <property name="sessionFactory" ref="sessionFactory"/> 
  	</bean> 
  	
	<tx:annotation-driven transaction-manager="transactionManager" />
	
	<!-- O Controlador de conexões do LocalJur -->
	<bean id="connectionManager" class="br.com.localcred.localjur.core.dao.ConnectionManagerHashMapImpl">
		<property name="jndiObjectFactoryBean" ref="dataSource"></property>
	</bean>
	
	<!-- Hibernate configurado pelo Spring -->
	<!-- Arquivos de configuracao -->   
   <bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">   
     <property name="locations">   
         <list>   
         <!--    <value>classpath:/jdbc.properties</value>   -->   
         </list>   
      </property> 
   </bean>   
   
	 <!-- Pool de conexao dataSource via jndi -->   
	<bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
		<property name="jndiName">			
			<value>java:LocalJurDS</value>
		</property>
	</bean>
 
   <!-- hibernate session factory -->   
   <bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">   
      <property name="dataSource">   
         <ref local="dataSource" />   
      </property>   
      <property name="annotatedClasses">   
          <list>      
            <value>br.com.localcred.localjur.core.entity.Usuario</value>
            <value>br.com.localcred.localjur.core.entity.Permissao</value> 
            <value>br.com.localcred.localjur.core.entity.Componente</value> 
            <value>br.com.localcred.localjur.core.entity.Filial</value> 
            <value>br.com.localcred.localjur.core.entity.Carteira</value> 
            <value>br.com.localcred.localjur.core.entity.IntegracaoCarteira</value>  
            <value>br.com.localcred.localjur.core.entity.IntegracaoProduto</value>
....
         </list>   
      </property>   
      <property name="hibernateProperties">   
         <props>   
            <prop key="hibernate.dialect">org.hibernate.dialect.Oracle9Dialect</prop>   
            <prop key="hibernate.show_sql">true</prop>   
            <prop key="hibernate.format_sql">true</prop>
            <prop key="hibernate.connection.autocommit">false</prop>
			<prop key="hibernate.current_session_context_class">thread</prop>
			<prop key="hibernate.hbm2ddl.auto">update</prop>   
         </props>   
      </property>   
   </bean>     

alguma luz ?

Configura ele pra mostrar a SQL executada e da uma olhada se quando vc usa o CREATE ele não está dando um DROP antes.

Já olhei… assim quando ele cria, vai tudo ok e deixa todas as tabelas certas porem quando sobe novamente com schema update as tabelas, campos fks estão todas lá como deveriam estar. porem ele tenta alterar novamente…

Analisando o log, percebi que ele não reconhece a fk existente:

2010-10-08 09:17:04,733 INFO  [STDOUT] 09:17:04,731  INFO TableMetadata:39 - table found: LOCALJURWEB.ACAOcolumns: [id_acao, id_status, versao, nm_acao, id_tipo_acao]
2010-10-08 09:17:04,736 INFO  [STDOUT] 09:17:04,735  INFO TableMetadata:42 - foreign keys: [fk1f0bf0d161e9f6, fk1f0bf013a77fe9]
2010-10-08 09:17:04,738 INFO  [STDOUT] 09:17:04,737  INFO TableMetadata:43 - indexes: [sys_c00227565]

e apos listar as tabelas encontradas ele tenta alterar a seguencia com o novo nome

2010-10-08 09:17:31,106 INFO  [STDOUT] 09:17:31,103 DEBUG SchemaUpdate:149 - alter table ACAO add constraint FK1E8FD0D161E9F6 foreign key (ID_STATUS) references Status
2010-10-08 09:17:31,159 INFO  [STDOUT] 09:17:31,157 ERROR SchemaUpdate:155 - Unsuccessful: alter table ACAO add constraint FK1E8FD0D161E9F6 foreign key (ID_STATUS) references Status
2010-10-08 09:17:31,160 INFO  [STDOUT] 09:17:31,159 ERROR SchemaUpdate:156 - ORA-02275: such a referential constraint already exists in the table
2010-10-08 09:17:31,163 INFO  [STDOUT] 09:17:31,160 DEBUG SchemaUpdate:149 - alter table ACAO add constraint FK1E8FD013A77FE9 foreign key (ID_TIPO_ACAO) references TIPO_ACAO
2010-10-08 09:17:31,170 INFO  [STDOUT] 09:17:31,168 ERROR SchemaUpdate:155 - Unsuccessful: alter table ACAO add constraint FK1E8FD013A77FE9 foreign key (ID_TIPO_ACAO) references TIPO_ACAO
2010-10-08 09:17:31,171 INFO  [STDOUT] 09:17:31,170 ERROR SchemaUpdate:156 - ORA-02275: such a referential constraint already exists in the table

tem como eu falar para o hibernate dar o nome da fk que eu quero ???

nas minhas entities eu não implementei Serealizable
como não tem o static final serialVersionUID ele deve estar gerando uma fk a cada alteração da minha classe… acho q é isso.