Ant + Hibernate = Persistent class not found

3 respostas
smota

Ae Pessoal,

fiz um taskzinho no ant pra gerar minha DDL a partir dos arquivos .hbm.xml (gerados _corretamente_ pelo ant+xdoclet)

O problema é que recebo a mensagem:

BUILD FAILED: file:C:/Arquivos de programas/eclipse/workspace/icm/build.xml:96: Schema text failed: net.sf.hibernate.MappingException: persistent class [entities.Address] not found

Idéias? Tá tudo lá, inclusive ... ops, resolvido.

fica a mensagem como consulta :lol:

O problema é que não adicionei ao task o diretório onde estavam minhas classes, ficou assim:

<path id="hibernate.classpath">
    <fileset dir="${hibernate.home}/lib">
        <include name="*.jar"/>
    </fileset>
    <pathelement path="${hibernate.home}/hibernate2.jar"/>
</path>

<!-- Define uma task para o SchemaExport do Hibernate -->
<taskdef 
		name="schemaexport"
        classname="net.sf.hibernate.tool.hbm2ddl.SchemaExportTask">
        	<classpath refid="hibernate.classpath"/>
			<classpath location="${build.home}"/>
</taskdef>

<target name="SchemaExportDump">
	<echo>** Criando arquivo DDL **</echo>
	
    <schemaexport
        properties="${configfiles.home}/hibernate.properties"
        quiet="no"
        text="yes"
        drop="no"
        delimiter=";"
        output="${build.home}/schema-export.sql">
        <fileset dir="${build.home}">
            <include name="**/*.hbm.xml"/>
        </fileset>
    </schemaexport>
	
	<echo>** FIM **</echo>
</target>

3 Respostas

cv1

Qué!

A boa e velha teoria do patinho de borracha entrando em acao :smiley:

rodrigousp

Falando no patinho de borracha, alguém sabe algum link que descreve esta maravilhosa técnica.

Um amigo meu me contou a seguinte versão:
"Antes de vc sair por ai, pedindo ajuda para resolver um bug, tente enfrentá-lo. A mais sofisticada técnica de depuração é a seguinte…

  1. Vc procura identificar a mensagem de erro e consulta o manual (rtfmf - read the fuck manual first)
  2. Não funcionando vc parte para algo mais agresivo… Você coloca mensagens de depuração no código tentando cercar o inimigo e aprender suas características. Apartir daí, tenta fazer um diagnótico mais certeiro
  3. Se ainda não funcionar… tente reproduzir o problema para um coisa mais simples. Isto é , retire todos os fatores de risco que possam estar envolvidos. Repita os passos 1 e 2
  4. Se nada disso funcionar… Vc tenta o artíficio supremo… Vc pega seu patinho de borracha (se não tiver, compre um), coloca ele em cima do computador e começar a explicar para ele, passo a passo, qual o seu problema, como o programa deveria funcionar, etc.
    (…)"
cv1

Rodrigo, esse método serve bem para resolver problemas de configuração, instalação e administração em geral, mas pra código existe um BEM melhor:

1 - Voce percebe que teu codigo nao ta funcionando direito
2 - Caso vc ja tenha um testcase, e ele estiver passando, escreva mais testcases que demonstrem o problema
3 - Rode o testcase com um depurador e identifique o problema
4 - Resolva o problema, ou volte pro passo 2

Dessa forma, o computador eh o seu proprio patinho de borracha :wink:

No fim, vc ainda acaba com um testcase que te diz quais sao os bugs que vc teve, e de certa forma ate mostram como eles foram resolvidos. Com o tempo, voce vai acabar escrevendo os testes antes do codigo, pra ja se prevenir, e pra saber responder direito à pergunta “terminei? é isso mesmo?” com absoluta certeza. :wink:

Dá uma lidinha sobre Test-Driven Development, e sobre XP (eXtreme Programming) em geral, é bem interessante.

Criado 12 de fevereiro de 2004
Ultima resposta 12 de fev. de 2004
Respostas 3
Participantes 3