| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 21/02/2010 14:06:06
|
renato1010
Thread.start()
![[Avatar]](/images/avatar/aa9b172de3974203d2bf3b0988513fa3.jpg)
Membro desde: 18/10/2008 11:17:13
Mensagens: 37
Offline
|
Olá pessoal, to iniciando os estudos em hibernate e to com o seguinte problema.
vamos do ínicio estou usando as seguintes bibliotecas
hibernate3
jta-1.1
antlr-2.7.6
commons-collections-3.1
dom4j-1.6.1
javassist-3.9.0.GA
c3p0-0.9.1
ehcache-1.2.3
slf4j-simple-1.5.2
slf4j-api-1.5.2
postgresql-8.4-701.jdbc4.jar
tenho 2 documento xml e 2 classe java
Aluno.java
GravaAluno.java
aluno.hbm.xml
hibernate.cfg.xml
quando executo a classe gravaAluno
me retorna um erro
Erro na inserção : org.hibernate.InvalidMappingException: Could not parse mapping document from resource aluno.hbm.xml
Ja procurei, mas não consigo achar o erro.
Para esclarecimento, este mesmo problema ja foi relatado aqui no forum, no seguinte link:
http://www.guj.com.br/posts/list/132888.java#715383
So que o cara em questão estava usando o MySQL, aí mudou pro Postgre e o problema foi resolvido. Eu ja estou usando Postgre, por isso a "solução" que ele encontrou não vale pra mim.
To usando Netbeans 6.8
Alguém poderia ajudar?
Desde já, agradeço a atenção.
This message was edited 1 time. Last update was at 21/02/2010 15:58:41
|
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 21/02/2010 16:21:36
|
Alessandro Lazarotti
Virtual Machine Man
![[Avatar]](/images/avatar/2aaaddf27344ee54058548dc081c6541.jpg)
Membro desde: 21/01/2004 14:12:54
Mensagens: 719
Offline
|
Tente cololocar a classe Aluno dentro de algum pacote como br.com.nomedesuaempresa.entity, se ainda não estiver.
No mapeamento do hbm.xml, coloque em classe o nome inteiramente qualificado desta, ou seja, o pacote + classe. Exemplo:
'<class name="br.com.nomedesuaempresa.entity.Aluno '
Mas de verdade mesmo, utilize anotações no lugar de arquivos .hbm.xml. É bem mais simples de escrever os mapeamentos.
Estude também JPA.
Um ótimo livro sobre utilização do hibernate e JPA é :
http://www.manning.com/bauer2/ (Java Persistence with Hibernate)
Leitura indispensável.
[]s
This message was edited 1 time. Last update was at 21/02/2010 16:22:12
|
... Lezinho
------------------------
twitter: @lazarotti
http://alessandrolazarotti.wordpress.com/
http://jbossbrasil.org/
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 21/02/2010 17:45:21
|
renato1010
Thread.start()
![[Avatar]](/images/avatar/aa9b172de3974203d2bf3b0988513fa3.jpg)
Membro desde: 18/10/2008 11:17:13
Mensagens: 37
Offline
|
Ola, bom a classe Aluno está dentro do pacote padrão, bem como a classe gravaAluno e os arquivos xml. Sendo assim, deveria conseguir mapear sem problemas. Quanto a utilizar anotações, estou começando a estudar hibernate e não sei como fazer ainda. Ja tentei colocar a classe aluno dentro de algum pacote e dpois coloquei no mapeamento do aluno.hbm.xml o caminho completo (pacote + classe). Mas o problema persiste.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 21/02/2010 22:52:41
|
Alessandro Lazarotti
Virtual Machine Man
![[Avatar]](/images/avatar/2aaaddf27344ee54058548dc081c6541.jpg)
Membro desde: 21/01/2004 14:12:54
Mensagens: 719
Offline
|
Você pode copiar aqui a stack trace do erro?
|
... Lezinho
------------------------
twitter: @lazarotti
http://alessandrolazarotti.wordpress.com/
http://jbossbrasil.org/
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 21/02/2010 23:12:19
|
Requena
Debugger
![[Avatar]](/images/avatar/92926624fcf6ffd24cab19fe3d5ad48f.jpg)
Membro desde: 18/02/2010 16:52:07
Mensagens: 66
Offline
|
renato1010 wrote:Ola, bom a classe Aluno está dentro do pacote padrão, bem como a classe gravaAluno e os arquivos xml. Sendo assim, deveria conseguir mapear sem problemas. Quanto a utilizar anotações, estou começando a estudar hibernate e não sei como fazer ainda. Ja tentei colocar a classe aluno dentro de algum pacote e dpois coloquei no mapeamento do aluno.hbm.xml o caminho completo (pacote + classe). Mas o problema persiste.
Tipo.... a propriedade alu_codigo no banco de dados esta como primary key?
Cola o script do banco aqui tb...
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 21/02/2010 23:36:40
|
renato1010
Thread.start()
![[Avatar]](/images/avatar/aa9b172de3974203d2bf3b0988513fa3.jpg)
Membro desde: 18/10/2008 11:17:13
Mensagens: 37
Offline
|
Ola pessoal.
Obrigado aí pela atenção.
Consegui resolver o problema.
Deixei o hibernate.cfg.xml dentro do pacote padrão e criei um pacote novo colocando dentro dele as classes Aluno e GravaAluno e o arquivo aluno.hbm.xml.
No mapeamento coloquei nomedopacotenovo/aluno.hbm.xml (antes tinha tentado isso colocando nomedopacotenovo.aluno.hbm.xml), dessa forma funcionou.
Agradeço a todos pela ajuda aí.
This message was edited 2 times. Last update was at 21/02/2010 23:39:12
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 06/01/2011 11:34:26
|
klebernss
Thread.start()
![[Avatar]](/images/avatar/023eae08cd291f454a56b1a29084f1ea.jpg)
Membro desde: 27/01/2008 19:36:33
Mensagens: 25
Localização: guarujá - sp
Offline
|
Tudo o que eu quero é apenas estabelecer um mapeamento entre a classe intranet.Papel e a tabela Intranet.dbo.TB_PAPEL no servidor 192.1.1.13\Producao - SQL Server 2008. Meu maior suspeito é essa barra invertida que eu não sei como se comporta na string de conexão do hibernate.
Segue abaixo os resources.
hibernate.cfg.xml
<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<property name="hibernate.connection.driver_class">com.microsoft.sqlserver.jdbc.SQLServerDriver</property>
<property name="hibernate.connection.url">jdbc:sqlserver://192.1.1.13\PRODUCAO;DatabaseName=Intranet</property>
<property name="hibernate.connection.username">usrIntra</property>
<property name="hibernate.connection.password">intra</property>
<property name="hibernate.connection.pool_size">10</property>
<property name="hibernate.dialect">org.hibernate.dialect.SQLServerDialect</property>
<property name="hibernate.current_session_context_class">org.hibernate.context.ManagedSessionContext</property>
<property name="hibernate.cache.use_second_level_cache">false</property>
<property name="hibernate.cache.use_query_cache">false</property>
<property name="hibernate.cache.provider_class">org.hibernate.cache.NoCacheProvider</property>
<property name="hibernate.show_sql">true</property>
<mapping resource="intranet/Papel.hbm.xml"/>
</session-factory>
</hibernate-configuration>
hibernate.properties
hibernate.dialect = org.hibernate.dialect.SQLServerDialect
hibernate.connection.driver_class = com.microsoft.sqlserver.jdbc.SQLServerDriver
hibernate.connection.url = jdbc:sqlserver://192.1.1.13\PRODUCAO;DatabaseName=Intranet
hibernate.connection.username = usrIntra
hibernate.connection.password = intra
Tentativa 1 - Com hibernate.cfg.xml
SessionFactory sessao = new Configuration().configure().buildSessionFactory();
sessao.openSession();
Tentativa 2 - Com hibernate.properties
SessionFactory factory = new Configuration().addClass(Papel.class).buildSessionFactory();
Session session = factory.openSession();
session.flush();
session.close();
Erro apresentado
org.hibernate.InvalidMappingException: Could not parse mapping document from resource intranet/Papel.hbm.xml
Se alguém puder me ajudar, eu agradeceria muito. Obrigado.
|
Vixe... um desenvolvedor dot net querendo virar a casaca. Tô adorando o JAVA. |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 06/01/2011 11:39:07
|
klebernss
Thread.start()
![[Avatar]](/images/avatar/023eae08cd291f454a56b1a29084f1ea.jpg)
Membro desde: 27/01/2008 19:36:33
Mensagens: 25
Localização: guarujá - sp
Offline
|
Segue também as classes para mapeamento.
intranet.Papel.java
package intranet;
public class Papel {
private String nome;
private String descricao;
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public String getDescricao() {
return descricao;
}
public void setDescricao(String descricao) {
this.descricao = descricao;
}
}
Papel.hbm.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD//EN" "http://hibernate.sourceforge.net/hibernate-mapping.dtd">
<hibernate-mapping>
<class name="Papel" table="dbo.TB_PAPEL">
<id name="nome" column="NOME" type="string">
<generator class="assigned"/>
</id>
<property name="descricao" column="DESCRICAO" type="string"/>
</class>
</hibernate-mapping>
|
Vixe... um desenvolvedor dot net querendo virar a casaca. Tô adorando o JAVA. |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 06/01/2011 13:30:01
|
klebernss
Thread.start()
![[Avatar]](/images/avatar/023eae08cd291f454a56b1a29084f1ea.jpg)
Membro desde: 27/01/2008 19:36:33
Mensagens: 25
Localização: guarujá - sp
Offline
|
Aê, bando de pé de breque, consegui!
Mudei o cabeçalho do hbm.xml de:
"-//Hibernate/Hibernate Mapping DTD//EN"
"http://hibernate.sourceforge.net/hibernate-mapping.dtd"
Para:
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
Com o hibernate.cfg.xml funcionou normalmente.
Com o hibernate.properties não.
Dá o erro com.microsoft.sqlserver.jdbc.SQLServerException: The TCP/IP connection to the host 192.1.1.13PRODUCAO, port 1433 has failed.
Não há nada de errado com o servidor, pois é a mesma string de conexão no cfg.xml e lá funciona normalmente.
Alguém tem alguma sugestão?
|
Vixe... um desenvolvedor dot net querendo virar a casaca. Tô adorando o JAVA. |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 06/01/2011 13:45:14
|
klebernss
Thread.start()
![[Avatar]](/images/avatar/023eae08cd291f454a56b1a29084f1ea.jpg)
Membro desde: 27/01/2008 19:36:33
Mensagens: 25
Localização: guarujá - sp
Offline
|
Pessoal, consegui denovo!
Ao contrário do hibernate.cfg.xml, quando se está no hibernate.properties, ele trata a string de conexão como uma String mesmo.
Ou seja, não se pode escrever: hibernate.connection.url = jdbc:sqlserver://192.1.1.13\PRODUCAO;DatabaseName=Intranet .
Tem que ser: hibernate.connection.url = jdbc:sqlserver://192.1.1.13\\PRODUCAO;DatabaseName=Intranet .
E pra saber disso, hein?! Puro tentative/error.
Grande Java!!!
|
Vixe... um desenvolvedor dot net querendo virar a casaca. Tô adorando o JAVA. |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 06/01/2011 13:45:49
|
klebernss
Thread.start()
![[Avatar]](/images/avatar/023eae08cd291f454a56b1a29084f1ea.jpg)
Membro desde: 27/01/2008 19:36:33
Mensagens: 25
Localização: guarujá - sp
Offline
|
Pessoal, consegui denovo!
Ao contrário do hibernate.cfg.xml, quando se está no hibernate.properties, ele trata a string de conexão como uma String mesmo.
Ou seja, não se pode escrever: hibernate.connection.url = jdbc:sqlserver://192.1.1.13\PRODUCAO;DatabaseName=Intranet .
Tem que ser: hibernate.connection.url = jdbc:sqlserver://192.1.1.13\\PRODUCAO;DatabaseName=Intranet .
E pra saber disso, hein?! Puro tentative/error.
Grande Java!!!
|
Vixe... um desenvolvedor dot net querendo virar a casaca. Tô adorando o JAVA. |
|
|
 |
|
|