Erro mapeamento hibernate

6 respostas
J

Boa tarde…

Sequi um exemplo simples de hibernate, porém está dando o seguinte erro:
[color=red]log4j:WARN No appenders could be found for logger (org.hibernate.cfg.Environment).
log4j:WARN Please initialize the log4j system properly.
Não foi possivel, Erro: Could not parse mapping document from resource exemplo/Usuario.hbm.xml [/color]

Classe Usuario:

package exemplo;

public class Usuario {
	
	private String usCod;
	private String usSenha;
	private String usNome;
	private String usEmail;

	public Usuario(String usCod, String usSenha, String usNome, String usEmail) {
		this.setUsCod(usCod);
		this.setUsSenha(usSenha);
		this.setUsNome(usNome);
		this.setUsEmail(usEmail);
	}

	public String getUsCod() {
		return usCod;
	}

	public void setUsCod(String usCod) {
		this.usCod = usCod;
	}

	public String getUsSenha() {
		return usSenha;
	}

	public void setUsSenha(String usSenha) {
		this.usSenha = usSenha;
	}

	public String getUsNome() {
		return usNome;
	}

	public void setUsNome(String usNome) {
		this.usNome = usNome;
	}

	public String getUsEmail() {
		return usEmail;
	}

	public void setUsEmail(String usEmail) {
		this.usEmail = usEmail;
	}
	
}

Classe UsuarioDAO:

package exemplo;

import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
import org.hibernate.classic.Session;

public class UsuarioDAO {
	
private SessionFactory factory;
	
	public UsuarioDAO() throws Exception{
		factory = new Configuration().addClass(Usuario.class).buildSessionFactory();
		
	}     
	
	public void UsInserir(Usuario us) throws Exception {
		Session session = factory.openSession();
		session.save(us);
		session.flush();
		session.close();
	}
	
	public void UsAlterar(Usuario us) throws Exception {
		Session session = factory.openSession();
		session.update(us);
		session.flush();
		session.close();
	}
	public void UsExcluir(Usuario us) throws Exception {
		Session session = factory.openSession();
		session.delete(us);
		session.flush();
		session.close();
	}
	
}

Classe Main:

package exemplo;

public class Main {
	
	public static void main(String[] args) {		
		try{ 
			String log = "login"; 
			String senha = "abc"; 
			String nome = "Rafael"; 
			String email = "[email removido]";

			UsuarioDAO dao = new UsuarioDAO(); 
			Usuario usuario = new Usuario(log,senha,nome,email);		
			dao.UsInserir(usuario);
			System.out.println("Registro inserido com sucesso!!!");
					 
		}catch(Exception e){    
			System.out.println("Não foi possivel, Erro: " + e.getMessage()); 
		}
	}

}

hibernate.properties:

hibernate.connection.driver_class = oracle.jdbc.OracleDriver
hibernate.connection.url = jdbc:oracle:thin:@164.164.164.5:1521:tc3d
hibernate.connection.username = tecbmjsh	
hibernate.connection.password = tecbmjsh

Usuario.hbm.xml:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate Mapping DTD 3.0//EN" 
"hibernate-mapping-3.0.dtd">

<hibernate-mapping>
   <class name="exemplo.Usuario" table="tb_usuarios">
       <id name="UsCod"  column="USCOD"  type="string">
            <generator class="assigned"/>
        </id>
        <property name="UsSenha" column="USSENHA" type="string"/>
        <property name="UsNome" column="USNOME" type="string"/>
        <property name="UsEmail" column="USEMAIL" type="string"/>
    </class>
</hibernate-mapping>

E por último, só uma imagem do meu projeto.

Se alguém puder me ajudar desde já agradeço.

6 Respostas

facholi

O erro é por causa da linha 03 do Usuario.hbm.xml:

<?xml version="1.0" encoding="UTF-8"?>  
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate Mapping DTD 3.0//EN"   
"hibernate-mapping-3.0.dtd">

Troque por:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC 
	"-//Hibernate Mapping DTD 3.0//EN"   
	"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
J

Olá facholi…

Primeiramente, obrigada por reponder o tópico. Alterei mas o erro persiste, mesmo Usuario.hbm.xml, hibernate.properties, hibernate.cfg.xml na raiz do projeto não muda.

Não teria alguma forma de eu informar o caminho dos mesmo?

Obrigada

facholi

Oi jessica,

tenta substituir o conteúdo do seu Usuario.hbm.xml por este:

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC 
	"-//Hibernate Mapping DTD 3.0//EN"   
	"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
   
<hibernate-mapping>  
    <class name="exemplo.Usuario" table="tb_usuarios">  
        <id name="usCod"  column="USCOD">  
             <generator class="assigned"/>  
         </id>  
         <property name="usSenha" column="USSENHA"/>  
         <property name="usNome" column="USNOME"/>  
         <property name="usEmail" column="USEMAIL"/>  
     </class>  
</hibernate-mapping>

Testei aqui e funcionou legal.
Veja se o erro é o mesmo, acho que pode ser outro erro. Se der erro novamente, cole o printstack aqui.

J

Olá…

Apliquei a última alteração, agora está gerando outro erro :stuck_out_tongue:

[color=red]Exception in thread “main” java.lang.NoSuchMethodError: org.slf4j.Logger.isTraceEnabled()Z [/color]

Você conhece?

facholi

Parece problema com as bibliotecas. Provavelmente está faltando a implementação do slf4j.

tente adicionar este jar ao seu lib:

ps: se der erro novamente, cole a stacktrace inteira aqui, eh melhor prá identificar o problema.

J

Olá, tive que add essa lib e mais uma, ai funfo.

Obrigada!

Agora o erro é outro…kkkkkk

Erro: ‘hibernate.dialect’ must be set when no Connection avalable

Criado 10 de setembro de 2009
Ultima resposta 11 de set. de 2009
Respostas 6
Participantes 2