[RESOLVIDO]Problema - Importação de biblioteca interferindo na persistencia

2 respostas
K

Olá pessoal,
Estou implementando dois projetos na mesma máquina.
Um projeto simula um servidor de arquivos(S1), o outro simula outro servidor de controle de acesso(S2), que fornece dados para o servidor de arquivos.
O S1 irá acessoar o S2 via RMI.

O problema é o seguinte, para S1 acessar o S2, ele deve importar a biblioteca que contém as classes de S2.
Essa biblioteca está interferindo na persistência em S1. Prova é que quando retiro a biblioteca tudo funciona normalmente.
O projeto S2 também persiste os dados utilizando Hibernate. Desconfio que o problema esteja aí.
Não sei o que pode estar acontencendo.

Minha dúvida é: Qual é o procedimento correto para utilizar na mesma máquina dois projetos que utilizam mapeamento Hibernate.

O erro é o seguinte:

Exception in thread "main" org.hibernate.MappingException: Unknown entity: authentication.Usuario
        at org.hibernate.impl.SessionFactoryImpl.getEntityPersister(SessionFactoryImpl.java:693)
        at org.hibernate.impl.SessionImpl.getEntityPersister(SessionImpl.java:1485)
        at org.hibernate.event.def.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:120)
        at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.saveWithGeneratedOrRequestedId(DefaultSaveOrUpdateEventListener.java:210)
        at org.hibernate.event.def.DefaultSaveEventListener.saveWithGeneratedOrRequestedId(DefaultSaveEventListener.java:56)
        at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.entityIsTransient(DefaultSaveOrUpdateEventListener.java:195)
        at org.hibernate.event.def.DefaultSaveEventListener.performSaveOrUpdate(DefaultSaveEventListener.java:50)
        at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:93)
        at org.hibernate.impl.SessionImpl.fireSave(SessionImpl.java:713)
        at org.hibernate.impl.SessionImpl.save(SessionImpl.java:701)
        at org.hibernate.impl.SessionImpl.save(SessionImpl.java:697)
        at dao.DaoGenerico.objInserir(DaoGenerico.java:18)
        at authentication.Teste.main(Teste.java:16)

2 Respostas

rmendes08

Import de classes atrapalhando a persistência ? Como diria padre Quevedo: isto non ecsiste! Vejamos o que diz a stacktrace: o problema é que a entidade Usuario não é encontrada, ou seja, temos ai um problema de mapeamento. Pelo que você diz o que está ocorrendo é que S1 está carregando o arquivo de configurações errado, provavelmente o arquivo de S2. Como Usuario deve estar mapeada em apenas um dos arquivos, ao carregar o arquivo errado ele não encontra o mapeamento. A minha sugestão é a seguinte: coloque as interfaces remotas de S2 em um .jar separado, e importe em S1 apenas as interfaces remotas, de forma que os arquivos de configuração do Hibernate não se misturem.

K

Já havia pensado nesta possibilidade e já havia retirado o arquivo de configuração e mesmo assim não tinha funcionado.
Dei uma enxugada, fiz outro teste… Agora funcionou!

De qualquer forma o problema era esse mesmo, realmente havia duplicidade nos arquivos de configuração.

Obrigado pela ajuda.

Criado 16 de julho de 2011
Ultima resposta 19 de jul. de 2011
Respostas 2
Participantes 2