Ajuda!

É Mauricio, ele é um tipo String, se eu nao mapea-lo como uma propriedade como ee posso classificá-lo? Assim como ele mapeei todos como propriedade! :wink:

Se ele é um tipo String, porque lá no atributo “type” do nó <property> ele tem esse valor:

type="br.com.evoluti.solicit.entidade.Estado"

Se ele é um String, não precisava nem colocar o “type”, o próprio Hibernate já saberia o que é.

hehehe… Cara isso ai foi vacilo mesmo…vou ver!

É que a variavel estado é do tipo Estado, entao ele faz algo parecido a um relacionamento!

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE hibernate-mapping PUBLIC
    "-//Hibernate/Hibernate Mapping DTD 3.0//EN" 
    "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">

<hibernate-mapping
>
    <class
        name="br.com.evoluti.solicit.entidade.Cidade"
        table="Cidade"
    >

        <id
            name="id"
            column="NUMG_Cidade"
            type="int"
        >
            <generator class="increment">
              <!--  
                  To add non XDoclet generator parameters, create a file named 
                  hibernate-generator-params-Cidade.xml 
                  containing the additional parameters and place it in your merge dir. 
              --> 
            </generator>
        </id>

        <property
            name="descricao"
            type="java.lang.String"
            column="DESC_Cidade"
            length="70"
            not-null="true"
            unique="true"
        />

        <property
            name="versaoObjeto"
            type="int"
            column="NUMR_VersaoObjeto"
        />

        <property
            name="estado"
            type="br.com.evoluti.solicit.entidade.Estado"
            column="NUMG_Estado"
        />

        <!--
            To add non XDoclet property mappings, create a file named
                hibernate-properties-Cidade.xml
            containing the additional properties and place it in your merge dir.
        -->

    </class>

</hibernate-mapping>

Como tah o comentario XDoclet na classe Cidade???
Não seria algo parecido com:

/**
* @hibernate.many-to-one
*  column="NUMG_Estado"
*  not-null="true"
*  class="br.com.evoluti.solicit.entidade.Estado"
*/
public Estado getEstado(){
 ...
}

É Diogenes realmente eu não fiz o relacionamento nao! fiz somente:

/**
 * @hibernate.property column = "NUMG_Estado"
 * @return
 */
	public Estado getEstado() {
		return estado;
	}

Fazendo o relacionamento funcionou?

É mudou o erro… vou rever aqui os relacionamentos… ai te falo!

Valeu pela dica! :slight_smile:

Diogenes, eu fiz as correçoes, e agora o erro é estrondoso, estou fazendo uma conexao com o SQLServer2000 e estou usando o drive jtds-1.0.3.jar… conhece? então estou passando pra voce meu arquivo de configuracao do hibernate pra vc dar uma olhada e ver se ele esta correto! Thanks

<!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.show_sql">true</property>
		<property name="hibernate.dialect">
			net.sf.hibernate.dialect.SQLServerDialect
		</property>
		<property name="connection.driver_class">
			net.sourceforge.jtds.jdbc.Driver
		</property>
		<property name="connection.url">
			jdbc:jtds:sqlserver://localhost:1433/sigp;
		</property>
		<property name="connection.username">pmiranda</property>
		<property name="connection.password">pmiranda</property>
		
		<property name="hibernate.cache.provider_class">net.sf.hibernate.cache.EhCacheProvider</property>


		<property name="c3p0.min_size">0</property>
		<property name="c3p0.max_size">10</property>
		<property name="c3p0.timeout">500</property>
		<property name="c3p0.max_statements">20</property>

		<mapping
			resource="br/com/evoluti/solicit/entidade/Solicitacao.hbm.xml" />
		<mapping
			resource="br/com/evoluti/solicit/entidade/Sistema.hbm.xml" />
		<mapping
			resource="br/com/evoluti/solicit/entidade/Resposta.hbm.xml" />
		<mapping
			resource="br/com/evoluti/solicit/entidade/Usuario.hbm.xml" />
		<mapping
			resource="br/com/evoluti/solicit/entidade/Bairro.hbm.xml" />
		<mapping
			resource="br/com/evoluti/solicit/entidade/Cidade.hbm.xml" />
		<mapping
			resource="br/com/evoluti/solicit/entidade/Estado.hbm.xml" />
		<mapping
			resource="br/com/evoluti/solicit/entidade/Paises.hbm.xml" />
		<mapping
			resource="br/com/evoluti/solicit/entidade/Logradouros.hbm.xml" />
		<mapping
			resource="br/com/evoluti/solicit/entidade/TipoLogradouros.hbm.xml" />
		
	</session-factory>
</hibernate-configuration>

Posta o erro aí.

Sem o erro fica difícil de adivinhar meu velho…
Mas, chutando, tenta tirar esse “;” no final da propriedade connection.url pra ver se muda alguma coisa…

Cara esse erro esta ocorrendo novamente!
Qdo for assim eu tenho q verifica-lo aonde no meu pacote descrito?

005-06-10 15:41:06,635 [main] INFO  net.sf.hibernate.impl.SessionFactoryImpl - building session factory
2005-06-10 15:41:06,635 [main] DEBUG net.sf.hibernate.impl.SessionFactoryImpl - instantiating session factory with properties: {hibernate.connection.password=teste, java.runtime.name=Java(TM) 2 Runtime Environment, Standard Edition, hibernate.cache.provider_class=net.sf.hibernate.cache.EhCacheProvider, sun.boot.library.path=C:\Arquivos de programas\Java\j2re1.4.2_08\bin, java.vm.version=1.4.2_08-b03, hibernate.connection.username=pmiranda, c3p0.min_size=0, java.vm.vendor=Sun Microsystems Inc., java.vendor.url=http://java.sun.com/, path.separator=;, java.vm.name=Java HotSpot(TM) Client VM, file.encoding.pkg=sun.io, user.country=BR, sun.os.patch.level=Service Pack 4, java.vm.specification.name=Java Virtual Machine Specification, user.dir=C:\Documents and Settings\pmiranda\Meus documentos\work\java\projetos\solicit, c3p0.max_size=10, java.runtime.version=1.4.2_08-b03, java.awt.graphicsenv=sun.awt.Win32GraphicsEnvironment, hibernate.c3p0.max_statements=20, java.endorsed.dirs=C:\Arquivos de programas\Java\j2re1.4.2_08\lib\endorsed, os.arch=x86, java.io.tmpdir=C:\DOCUME~1\pmiranda\CONFIG~1\Temp\, line.separator=
, java.vm.specification.vendor=Sun Microsystems Inc., user.variant=, os.name=Windows 2000, sun.java2d.fontpath=, hibernate.c3p0.timeout=500, java.library.path=C:\Arquivos de programas\Java\j2re1.4.2_08\bin;.;C:\WINNT\system32;C:\WINNT;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Arquivos de programas\Microsoft SQL Server\80\Tools\BINN;C:\j2sdk1.4.2_08\bin;C:\maven-1.0.2\bin;C:\j2sdk1.4.2_08\bin;C:\Arquivos de programas\CVSNT\, java.specification.name=Java Platform API Specification, java.class.version=48.0, java.util.prefs.PreferencesFactory=java.util.prefs.WindowsPreferencesFactory, os.version=5.0, connection.password=teste, user.home=C:\Documents and Settings\pmiranda, user.timezone=America/Sao_Paulo, connection.username=pmiranda, java.awt.printerjob=sun.awt.windows.WPrinterJob, file.encoding=Cp1252, java.specification.version=1.4, hibernate.c3p0.min_size=0, hibernate.connection.driver_class=net.sourceforge.jtds.jdbc.Driver, user.name=pmiranda, java.class.path=C:\Documents and Settings\pmiranda\Meus documentos\work\java\projetos\solicit\src\main\web\WEB-INF\classes;C:\Documents and Settings\pmiranda\Meus documentos\work\java\projetos\solicit\lib\hibernate\jars\hibernate-2.1.3.jar;C:\Documents and Settings\pmiranda\Meus documentos\work\java\projetos\solicit\lib\hibernate\jars\log4j-1.2.8.jar;C:\Documents and Settings\pmiranda\Meus documentos\work\java\projetos\solicit\lib\myfaces\jars\myfaces.jar;C:\Documents and Settings\pmiranda\Meus documentos\work\java\projetos\solicit\lib\myfaces\jars\servlet.jar;C:\Documents and Settings\pmiranda\Meus documentos\work\java\projetos\solicit\lib\hibernate\jars\commons-logging-1.0.4.jar;C:\Documents and Settings\pmiranda\Meus documentos\work\java\projetos\solicit\lib\hibernate\jars\dom4j-1.4.jar;C:\Documents and Settings\pmiranda\Meus documentos\eclipse\plugins\org.junit_3.8.1\junit.jar;C:\Documents and Settings\pmiranda\Meus documentos\work\java\projetos\solicit\lib\hibernate\jars\commons-collections-2.1.1.jar;C:\Documents and Settings\pmiranda\Meus documentos\work\java\projetos\solicit\lib\hibernate\jars\c3p0-0.8.4.5.jar;C:\Documents and Settings\pmiranda\Meus documentos\work\java\projetos\solicit\lib\hibernate\jars\cglib-full-2.0.2.jar;C:\Documents and Settings\pmiranda\Meus documentos\work\java\projetos\solicit\lib\hibernate\jars\ehcache-0.9.jar;C:\Documents and Settings\pmiranda\Meus documentos\work\java\projetos\solicit\lib\hibernate\jars\jdbc2_0-stdext.jar;C:\Documents and Settings\pmiranda\Meus documentos\work\java\projetos\solicit\lib\hibernate\jars\jta.jar;C:\Documents and Settings\pmiranda\Meus documentos\work\java\projetos\solicit\lib\hibernate\jars\odmg-3.0.jar;C:\Documents and Settings\pmiranda\Meus documentos\work\java\projetos\solicit\lib\hibernate\jars\swarmcache-1.0rc2.jar;C:\Documents and Settings\pmiranda\Meus documentos\work\java\projetos\solicit\lib\hibernate\jars\xalan-2.4.0.jar;C:\Documents and Settings\pmiranda\Meus documentos\work\java\projetos\solicit\lib\hibernate\jars\xerces-2.4.0.jar;C:\Documents and Settings\pmiranda\Meus documentos\work\java\projetos\solicit\lib\jtds\jars\jtds-1.0.3.jar, hibernate.show_sql=true, java.vm.specification.version=1.0, java.home=C:\Arquivos de programas\Java\j2re1.4.2_08, sun.arch.data.model=32, hibernate.connection.url=jdbc:jtds:sqlserver://localhost:1433/SIGP, hibernate.dialect=net.sf.hibernate.dialect.SQLServerDialect, user.language=pt, java.specification.vendor=Sun Microsystems Inc., hibernate.c3p0.max_size=10, awt.toolkit=sun.awt.windows.WToolkit, c3p0.timeout=500, hibernate.cglib.use_reflection_optimizer=true, java.vm.info=mixed mode, c3p0.max_statements=20, java.version=1.4.2_08, java.ext.dirs=C:\Arquivos de programas\Java\j2re1.4.2_08\lib\ext, sun.boot.class.path=C:\Arquivos de programas\Java\j2re1.4.2_08\lib\rt.jar;C:\Arquivos de programas\Java\j2re1.4.2_08\lib\i18n.jar;C:\Arquivos de programas\Java\j2re1.4.2_08\lib\sunrsasign.jar;C:\Arquivos de programas\Java\j2re1.4.2_08\lib\jsse.jar;C:\Arquivos de programas\Java\j2re1.4.2_08\lib\jce.jar;C:\Arquivos de programas\Java\j2re1.4.2_08\lib\charsets.jar;C:\Arquivos de programas\Java\j2re1.4.2_08\classes, java.vendor=Sun Microsystems Inc., connection.driver_class=net.sourceforge.jtds.jdbc.Driver, file.separator=\, java.vendor.url.bug=http://java.sun.com/cgi-bin/bugreport.cgi, sun.io.unicode.encoding=UnicodeLittle, sun.cpu.endian=little, connection.url=jdbc:jtds:sqlserver://localhost:1433/SIGP, sun.cpu.isalist=pentium i486 i386}
net.sf.hibernate.HibernateException: net.sf.hibernate.PropertyNotFoundException: Could not find a setter for property id in class br.com.evoluti.solicit.entidade.TipoLogradouros
	at br.com.evoluti.solicit.cadastro.SessionFactory.getSessionFactory(SessionFactory.java:57)
	at br.com.evoluti.solicit.cadastro.SessionFactory.getConfiguration(SessionFactory.java:75)
	at br.com.evoluti.solicit.cadastro.SessionFactory.exportSchema(SessionFactory.java:41)
	at br.com.evoluti.solicit.cadastro.SessionFactory.main(SessionFactory.java:82)
Caused by: net.sf.hibernate.PropertyNotFoundException: Could not find a setter for property id in class br.com.evoluti.solicit.entidade.TipoLogradouros
	at net.sf.hibernate.property.BasicPropertyAccessor.getSetter(BasicPropertyAccessor.java:131)
	at net.sf.hibernate.mapping.Property.getSetter(Property.java:178)
	at net.sf.hibernate.persister.AbstractEntityPersister.<init>(AbstractEntityPersister.java:590)
	at net.sf.hibernate.persister.EntityPersister.<init>(EntityPersister.java:690)
	at net.sf.hibernate.persister.PersisterFactory.createClassPersister(PersisterFactory.java:42)
	at net.sf.hibernate.impl.SessionFactoryImpl.<init>(SessionFactoryImpl.java:137)
	at net.sf.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:805)
	at br.com.evoluti.solicit.cadastro.SessionFactory.getSessionFactory(SessionFactory.java:53)
	... 3 more

Simples, a classe TipoLogradouros não tem uma propriedade “id”.

Realmente nao tem property id porque declaro nao os declaro como propriedades e sim id’s mesmo!

[code]
/**

  • @hibernate.id column = “NUMG_LogradouroTipo” generator-class = “increment”
  • @return
    */
    public int getId() {
    return id;
    }

Tenho que declara-lo como property ou tenho que seta (setter) alguma coisa?

você tem que colocar o método setId(int id), assim:


public void setId(int id) {
                this.id = id;
}

Eh sempre bom ler a exception direito antes…

Digo tenho que declarar o set no hibernate…
/**

*/ Pq antes eu so fazia o getId

Não, você só precisa declarar o set no seu código Java. É bom você aprender a fazer o mapeamento na mão rapaz, vai facilitar um bocado a sua vida.

Basta vc colocar o metodo como o Mauricio te falou.

[citando Maurício Linhares]
É bom você aprender a fazer o mapeamento na mão rapaz, vai facilitar um bocado a sua vida.
[/citando]

Ou pelo menos dominá-lo primeiro e depois sim usar XDoclet.