É 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!
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!
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…
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.