Problema com XML no Hibernate

13 respostas
M

Ola pessoal! Vejam se podem me ajudar?

Bom, eu to usando o Postgre e Jboss...

Tenho as seguintes tabelas:

>> TipoPessoas
TipoPessoa_ID, Nome, Codigo, Descricao

>> Pessoas
Pesssoa_ID, Nome, Empresa, TipoPessoa_ID

Vejam se o XML abaixo esta correto:

>> TipoPessoas.xml
<hibernate-mapping>
	<class name="projeto.entidades.TipoPessoas" table="tipopessoas">
		<id name="tipopessoa_id" column="tipopessoa_id">
			<generator class="sequence">
	       	<param name="sequence">tipopessoa_seq</param>
		    </generator>
		</id>
	
		<property name="codigo" column="codigo" />
		<property name="descricao" column="descricao" />
		<property name="categoria" column="categoria" />
	    	    
	</class>		
</hibernate-mapping>
>> Pessoas.xml
<hibernate-mapping>
	<class name="projeto.entidades.Pessoas" table="pessoas">
		<id name="pessoa_id" column="pessoa_id">
			<generator class="sequence">
	       	<param name="sequence">pessoa_seq</param>
		    </generator>
		</id>
	
		<property name="nome" column="nome" />
		<property name="cpf" column="cpf" />
		<property name="rg" column="rg" />
		<property name="estcivil" column="estcivil" />
		<property name="dt_nasc" column="dt_nasc" />
		<property name="cidade" column="cidade" />
		<property name="distrito" column="distrito" />
		<property name="logradouro" column="logradouro" />
		<property name="num_end" column="num_end" />
		<property name="compl_end" column="compl_end" />
		<property name="cep" column="cep" />
		<property name="uf" column="uf" />
		<property name="sexo" column="sexo" />
		<property name="bairro" column="bairro" />
		
		<many-to-one
				name="empresas"
				class="projeto.entidades.Empresas"
				column="empresa_id"/>

		<many-to-one
				name="usuarios"
				class="projeto.entidades.Usuarios"
				column="usuario_id"/>
					    	    
		<many-to-one
				name="tipopessoas"
				class="projeto.entidades.TipoPessoas"
				column="tipopessoa_id"/>	    
	    
	</class>		
</hibernate-mapping>
Se puderem me mostrar como ficaria a Classe Pessoas.java e TipoPessoas.java, seria otimo, pois to com uma enorme duvida.

Desculpem o tamanho da duvida.
[size="11"][color="red"]* Editado: Lembre-se de utilizar BBCode em seus códigos - Cassolato[/color][/size] :joia:

13 Respostas

P

não entendi a sua dúvida…como vc fez o mapeamento sem ter os Objetos?
esse seu mapeamento ai nao vai funcionar nao…vc precisa especificar outras propriedades…
por exemplo:

<property name="descricao" type="string" length="255" column="descricao" not-null="false"/>

aih os seus Objetos tem q ter o nome q vc especificou em “<class name=” e as variaveis tem q ser as q vc especificou em “<property name=”

o único lance q vc tem q se preocupar, são os datatypes, pois pra cada tipo no banco, existe um tipo do java q vc tem q usar…na documentação do hibernate tem isso…

espero ter ajudado…

flw

M
Bom, eu ja tinha as classes, so tinha duvida se era assim mesmo!
package projeto.entidades;

public class TipoPessoas &#123;
 
	  private Integer tipopessoa_id; 
	  private String codigo;
	  private String descricao;
	  private Integer categoria;
	  
	  public TipoPessoas&#40;Integer tipopessoa_id, String  codigo, String  descricao, Integer categoria&#41; &#123;
		  this.tipopessoa_id = tipopessoa_id; 
		  this.codigo = codigo;
		  this.descricao = descricao;
		  this.categoria = categoria;
	&#125;

	  gest e sets...
&#125;
package projeto.entidades;

import java.util.Date;

public class Pessoas &#123;
 
	private Integer pessoa_id; 
	private String nome;
	private String cpf;
	private String rg;
	private String estcivil;
	private Date dt_nasc;
	private String cidade;
	private String distrito; 
	private String logradouro; 
	private String num_end;
	private String compl_end; 
	private String cep;
	private String uf;
	private String sexo;
	private String bairro;
	private Empresas empresas;
	private Usuarios usuarios;
	private TipoPessoas tipopessoas; 

	public Pessoas&#40;	Integer pessoa_id, String nome, String cpf, String rg, String estcivil, Date dt_nasc, 
			String cidade, String distrito, String logradouro, String num_end, String compl_end, 
			String cep, String uf, String sexo, String bairro, Empresas empresas, Usuarios usuarios, 
			TipoPessoas tipopessoas&#41;&#123;
			this.pessoa_id = pessoa_id; 
			this.nome = nome;
			this.cpf = cpf;
			this.rg = rg;
			this.estcivil = estcivil;
			this.dt_nasc = dt_nasc;
			this.cidade = cidade;
			this.distrito = distrito; 
			this.logradouro = logradouro; 
			this.num_end = num_end;
			this.compl_end = compl_end; 
			this.cep = cep;
			this.uf = uf;
			this.sexo = sexo;
			this.bairro = bairro;
			this.empresas = empresas;
			this.usuarios = usuarios;
			this.tipopessoas = tipopessoas;
	&#125;

          gets e sets...
&#125;
[size="11"][color="red"]* Editado: Lembre-se de utilizar BBCode em seus códigos - Cassolato[/color][/size] :joia:
P

não entendi pq vc tem um construtor recebendo todos os parametros do Objeto…

o lance eh vc ter um contrutor vazio,

depois ter um contrutor recebendo o campo q representa a PK do seu banco, para facilitar na hora q vc for fazer o .load()

flw

C
Use o padrão POJO nos seus objetos...
public class Pessoa&#40;&#41; &#123;
   private Integer id;
   private String nome;

   public Pessoa&#40;&#41;&#123;&#125;

   //gets, sets
&#125;
OK ?
M

“Naum” preciso declarar na classe Pessoas as seguintes variaveis:

private Empresas empresas;

private Usuarios usuarios;

private TipoPessoas tipopessoas;

Mesmo elas tendo relacionamentos no XML “Pessoas.xml”, “Empresas.xml” e “TipoPessoas.xml” ???

P

isso vc tem q fazer sim, e ter os respectivos getters e setters…

M

Podem analisar por favor?

2007-02-01 11:15:22,140 INFO  [STDOUT] * Controle Mensagem - Entrei em Controles de Mensagem

2007-02-01 11:15:22,187 INFO  [org.hibernate.cfg.Environment] Hibernate 3.1.3

2007-02-01 11:15:22,203 INFO  [org.hibernate.cfg.Environment] hibernate.properties not found

2007-02-01 11:15:22,234 INFO  [org.hibernate.cfg.Environment] using CGLIB reflection optimizer

2007-02-01 11:15:22,234 INFO  [org.hibernate.cfg.Environment] using JDK 1.4 java.sql.Timestamp handling

2007-02-01 11:15:22,406 INFO  [org.hibernate.cfg.Configuration] configuring from resource: /hibernate.cfg.xml

2007-02-01 11:15:22,406 INFO  [org.hibernate.cfg.Configuration] Configuration resource: /hibernate.cfg.xml

2007-02-01 11:15:22,406 INFO  [org.hibernate.cfg.Configuration] Reading mappings from resource: projeto/entidades/Atividades.hbm.xml

2007-02-01 11:15:22,546 INFO  [org.hibernate.cfg.HbmBinder] Mapping class: projeto.entidades.Atividades -> atividades

2007-02-01 11:15:22,718 INFO  [org.hibernate.cfg.Configuration] Reading mappings from resource: projeto/entidades/Clientes.hbm.xml

2007-02-01 11:15:22,734 INFO  [org.hibernate.cfg.HbmBinder] Mapping class: projeto.entidades.Clientes -> clientes

2007-02-01 11:15:22,734 INFO  [org.hibernate.cfg.Configuration] Reading mappings from resource: projeto/entidades/Empresas.hbm.xml

2007-02-01 11:15:22,765 INFO  [org.hibernate.cfg.HbmBinder] Mapping class: projeto.entidades.Empresas -> empresas

2007-02-01 11:15:22,765 INFO  [org.hibernate.cfg.Configuration] Reading mappings from resource: projeto/entidades/Eventos.hbm.xml

2007-02-01 11:15:22,781 INFO  [org.hibernate.cfg.HbmBinder] Mapping class: projeto.entidades.Eventos -> eventos

2007-02-01 11:15:22,781 INFO  [org.hibernate.cfg.Configuration] Reading mappings from resource: projeto/entidades/Status.hbm.xml

2007-02-01 11:15:22,812 INFO  [org.hibernate.cfg.HbmBinder] Mapping class: projeto.entidades.Status -> status

2007-02-01 11:15:22,812 INFO  [org.hibernate.cfg.Configuration] Reading mappings from resource: projeto/entidades/TipoAtividades.hbm.xml

2007-02-01 11:15:22,828 INFO  [org.hibernate.cfg.HbmBinder] Mapping class: projeto.entidades.TipoAtividades -> tipoatividades

2007-02-01 11:15:22,828 INFO  [org.hibernate.cfg.Configuration] Reading mappings from resource: projeto/entidades/Usuarios.hbm.xml

2007-02-01 11:15:22,828 ERROR [org.hibernate.util.XMLHelper] Error parsing XML: XML InputStream(1) Content is not allowed in prolog.

2007-02-01 11:15:22,828 INFO  [STDOUT] org.hibernate.MappingException: Could not read mappings from resource: projeto/entidades/Usuarios.hbm.xml

at org.hibernate.cfg.Configuration.addResource(Configuration.java:485)

at org.hibernate.cfg.Configuration.parseMappingElement(Configuration.java:1465)

at org.hibernate.cfg.Configuration.parseSessionFactory(Configuration.java:1433)

at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:1414)

at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:1390)

at org.hibernate.cfg.Configuration.configure(Configuration.java:1310)

at org.hibernate.cfg.Configuration.configure(Configuration.java:1296)

at projeto.dao.MensagemDAO.findMensagem(MensagemDAO.java:26)

at projeto.controles.ControleMensagem.listaMensagem(ControleMensagem.java:37)

at org.apache.jsp.relatorio.rel_005fmensagem_jsp._jspService(rel_005fmensagem_jsp.java:69)

at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)

at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324)

at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)

at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)

at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:75)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:186)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)

at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)

at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)

at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)

at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:198)

at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:152)

at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)

at org.jboss.web.tomcat.security.CustomPrincipalValve.invoke(CustomPrincipalValve.java:66)

at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)

at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:158)

at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)

at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)

at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137)

at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)

at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:118)

at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)

at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)

at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)

at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)

at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)

at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)

at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)

at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799)

at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705)

at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577)

at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)

at java.lang.Thread.run(Thread.java:595)

Caused by: org.hibernate.MappingException: Could not parse mapping document in input stream

at org.hibernate.cfg.Configuration.addInputStream(Configuration.java:431)

at org.hibernate.cfg.Configuration.addResource(Configuration.java:482)

 46 more

Caused by: org.dom4j.DocumentException: Error on line 1 of document  : Content is not allowed in prolog. Nested exception: Content is not allowed in prolog.

at org.dom4j.io.SAXReader.read(SAXReader.java:350)

at org.hibernate.cfg.Configuration.addInputStream(Configuration.java:422)

 47 more

2007-02-01 11:15:22,828 INFO  [STDOUT] * Controle Mensagem - Sai do Controle 

2007-02-01 11:15:22,828 ERROR [org.jboss.web.localhost.Engine] StandardWrapperValve[jsp]: Servlet.service() for servlet jsp threw exception

java.lang.NullPointerException

at org.apache.jsp.relatorio.rel_005fmensagem_jsp._jspService(rel_005fmensagem_jsp.java:71)

at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)

at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324)

at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)

at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)

at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:75)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:186)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)

at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)

at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)

at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)

at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:198)

at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:152)

at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)

at org.jboss.web.tomcat.security.CustomPrincipalValve.invoke(CustomPrincipalValve.java:66)

at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)

at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:158)

at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)

at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)

at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137)

at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)

at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:118)

at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)

at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)

at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)

at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)

at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)

at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)

at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)

at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799)

at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705)

at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577)

at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)

at java.lang.Thread.run(Thread.java:595)
M

Desculpe pelo tamanho do log

M

E ai pessaol? Blz?

Alguem tem ideia disso???

P

vc viu isso?

2007-02-01 11&#58;15&#58;22,828 ERROR &#91;org.hibernate.util.XMLHelper&#93; Error parsing XML&#58; XML InputStream&#40;1&#41; Content is not allowed in prolog.
2007-02-01 11&#58;15&#58;22,828 INFO &#91;STDOUT&#93; org.hibernate.MappingException&#58; Could not read mappings from resource&#58; projeto/entidades/Usuarios.hbm.xml

então procure por problemas nesse seu hbm…

M

Bom eu ja resolvi sozinho, valeu!

W

E como resolveu!?

Tô com o mesmo problema!!!

8O :grin:

W

Há…

agora o erro é o seguinte:

2007-03-05 16&#58;26&#58;32,343 DEBUG hibernate.util.DTDEntityResolver  -&gt; trying to resolve system-id &#91;http&#58;//hibernate.sourceforge.net/hibernate-mapping-2.0.dtd&#93;
   2007-03-05 16&#58;26&#58;32,343 DEBUG hibernate.util.DTDEntityResolver  -&gt; recognized hibernate namespace; attempting to resolve on classpath under org/hibernate/
   2007-03-05 16&#58;26&#58;32,343 DEBUG hibernate.util.DTDEntityResolver  -&gt; unable to locate &#91;http&#58;//hibernate.sourceforge.net/hibernate-mapping-2.0.dtd&#93; on classpath
   2007-03-05 16&#58;26&#58;32,343 ERROR hibernate.util.DTDEntityResolver  -&gt; Don't use old DTDs, read the Hibernate 3.x Migration Guide!
   Erro&#58; Could not read mappings from resource&#58; CorrespUsr.hbm.xml

E agora?

Criado 1 de fevereiro de 2007
Ultima resposta 5 de mar. de 2007
Respostas 13
Participantes 4