Duvida com Hibernate

10 respostas
ma.pops

Boa noite,

criei uma classe DAO para manipular o Banco de Dados
Uso o Hibernate
percebi que o metodo adicionar naum estava funcionando
aparece o seguinte erro, se alguem poder me ajudar agradeço
segue abaixo o erro
[color=red]
ERROR: JDWP Unable to get JNI 1.2 environment, jvm->GetEnv() return code = -2
JDWP exit error AGENT_ERROR_NO_JNI_ENV(183): […/…/…/src/share/back/util.c:820]
[/color]
Obs: teste o metodo listar e esta funcionando normal

10 Respostas

L

Eu não entendi exatamente o erro, mas tenho a impressão que é culpa de alguma configuração que vocÊ fez errado.

ma.pops

De configração do Hibernate??
Vo postar aqui os codigos

hibernate-cfg.xml
<?xml version="1.0" encoding="UTF-8"?>
<!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.connection.driver_class">
			com.mysql.jdbc.Driver
		</property>
		<property name="hibernate.connection.url">
			jdbc:mysql://localhost/teste
		</property>
		<property name="hibernate.dialect">
			org.hibernate.dialect.MySQLDialect
		</property>
		<property name="hibernate.connection.username">root</property>
		
		<property name="hibernate.show_sql">true</property>
		<property name="hibernate.format_sql">true</property>
		
		<mapping class="br.com.caelum.lojavirtual.modelo.Usuario"/>
	</session-factory>
</hibernate-configuration>
package br.com.caelum.lojavirtual.dao;

import java.util.List;

import org.hibernate.Session;

public class Dao<T> {
	private final Session session;
	private final Class classe;
	
	public Dao(Session session, Class classe){
		this.session = session;
		this.classe = classe;
	}
	
	public void adiciona(T u){
		this.session.save(u);
	}
	
	public void remove(T u){
		this.session.delete(u);
	}
	
	public void atualiza(T u){
		this.session.merge(u);
	}
	
	public List<T> listaTudo(){
		return this.session.createCriteria(this.classe).list();
	}
	
	public T procura(Long id){
		return (T) session.load(this.classe, id);
	}
}
package br.com.caelum.lojavirtual.main;

import java.util.List;

import br.com.caelum.lojavirtual.dao.Dao;
import br.com.caelum.lojavirtual.modelo.Usuario;
import br.com.caelum.lojavirtual.util.DaoFactory;


public class TestaUsuario {
	public static void main(String[] args) {
		Dao dao = new DaoFactory().getUsuarioDao();
		
		//cria usuario
		Usuario u = new Usuario();
		u.setLogin("mampoper");
		u.setSenha("123456");
		dao.adiciona(u);
		
		//lista usuarios
		List<Usuario> lista = dao.listaTudo();
		for(Usuario usuario : lista){
			System.out.println(usuario.getLogin());
		}
	}
}
L

não necessáriamente.
Na verdade o erro não parece ser …

dei uma procurada com o google, e achei um problema semelhante.
e a solução que deram foi :

"I had an error in my path to a file that was not caught by Eclipse. I corrected it and the “Unable to get JNII 1.2 Environment” error went away."
Link:http://forums.sun.com/thread.jspa?threadID=5159038

PElo que falam aqui, é algum erro que o Eclipse não pegou em relação ao path. Com os códigos que você me passou não seria suficiente para resolver… Claro que a thread tem mais coisas falando À respeito, mas vamos por partes.

ma.pops
Vo postar os codigos do meu projeto entaum ai vc da uma olhada
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;

@Entity
public class Usuario {
	@Id
	@GeneratedValue
	private Long id;
	private String login;
	private String senha;
	
	public Long getId() {
		return id;
	}
	
	public void setId(Long id) {
		this.id = id;
	}
	
	public String getLogin() {
		return login;
	}
	
	public void setLogin(String login) {
		this.login = login;
	}
	
	public String getSenha() {
		return senha;
	}
	
	public void setSenha(String senha) {
		this.senha = senha;
	}
}
import java.util.List;

import org.hibernate.Session;

public class Dao<T> {
	private final Session session;
	private final Class classe;
	
	public Dao(Session session, Class classe){
		this.session = session;
		this.classe = classe;
	}
	
	public void adiciona(T u){
		this.session.save(u);
	}
	
	public void remove(T u){
		this.session.delete(u);
	}
	
	public void atualiza(T u){
		this.session.merge(u);
	}
	
	public List<T> listaTudo(){
		return this.session.createCriteria(this.classe).list();
	}
	
	public T procura(Long id){
		return (T) session.load(this.classe, id);
	}
}
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.AnnotationConfiguration;
import org.hibernate.cfg.Configuration;

public class HibernateUtil {

	private static SessionFactory factory;

	static{
		Configuration conf = new AnnotationConfiguration();
		conf.configure();
		factory = conf.buildSessionFactory();		
	}
	public static Session getSession() {
		return factory.openSession();
	}

}
import org.hibernate.Session;
import org.hibernate.Transaction;

import br.com.caelum.lojavirtual.dao.Dao;
import br.com.caelum.lojavirtual.modelo.Usuario;

public class DaoFactory {
	private final Session session;
	private Transaction transaction;
	
	public DaoFactory(){
		session = HibernateUtil.getSession();
	}
	
	public void beginTransaction(){
		this.transaction = this.session.beginTransaction();
	}
	
	public void commit(){
		this.transaction.commit();
		this.transaction = null;
	}
	
	public boolean hasTransaction(){
		return this.transaction != null;
	}
	
	public void rollback(){
		this.transaction.rollback();
		this.transaction = null;
	}
	
	public void close(){
		this.session.close();
	}
	
	public Dao<Usuario> getUsuarioDao(){
		return new Dao<Usuario>(this.session, Usuario.class);
	}
}
import java.util.List;

import br.com.caelum.lojavirtual.dao.Dao;
import br.com.caelum.lojavirtual.modelo.Usuario;
import br.com.caelum.lojavirtual.util.DaoFactory;


public class TestaUsuario {
	public static void main(String[] args) {
		Dao dao = new DaoFactory().getUsuarioDao();
		
		//cria usuario
		Usuario u = new Usuario();
		u.setLogin("mampoper");
		u.setSenha("123456");
		dao.adiciona(u);
		
		//lista usuarios
		List<Usuario> lista = dao.listaTudo();
		for(Usuario usuario : lista){
			System.out.println(usuario.getLogin());
		}
	}
}

Por onde você acha que eu devo começar
dei uma pesquisada no google e naum axei nada sobre

vlw

ma.pops
A precisa dos xmls tambem? bom de qualquer jeito eu vo postar aqui ai vc ja tem meu projeto inteiro
<?xml version="1.0" encoding="ISO-8859-1"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
  <display-name>lojaVirtual</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>
  
  <servlet>
  	<servlet-name>vraptor2</servlet-name>
  	<servlet-class>org.vraptor.VRaptorServlet</servlet-class>
  	<load-on-startup>1</load-on-startup>
  </servlet>
  
  <servlet-mapping>
  	<servlet-name>vraptor2</servlet-name>  
  	<url-pattern>*.logic</url-pattern>
  </servlet-mapping>
  
</web-app>
<?xml version="1.0" encoding="UTF-8"?>
<!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.connection.driver_class">
			com.mysql.jdbc.Driver
		</property>
		<property name="hibernate.connection.url">
			jdbc:mysql://localhost/teste
		</property>
		<property name="hibernate.dialect">
			org.hibernate.dialect.MySQLDialect
		</property>
		<property name="hibernate.connection.username">root</property>
		
		<property name="hibernate.show_sql">true</property>
		<property name="hibernate.format_sql">true</property>
		
		<mapping class="br.com.caelum.lojavirtual.modelo.Usuario"/>
	</session-factory>
</hibernate-configuration>

Vlw cara brigado pela atenção

L

Cara estou um pouco enrrolado para verificar tudo o que você me passou , mas vou tentar implementar aqui quando der … imagino que daqui a uma semana

ma.pops

Sem problemas…

eu estou tentando aqui tambem
se eu conseguir eu posto aqui ok…
vlw cara

Obrigado pela atenção

ma.pops

Leonardo

fiz uns testes com o sistema web, e vi está funcionando normal
esta adicionando no banco, então não ser porque não está dando certo no teste
mais blz, eu vo usar ele mesmo no sistema web
de qualquer forma muito obrigado pela atenção

Vlw cara
ate mais

L

"fiz uns testes com o sistema web, e vi está funcionando normal "

não entendi, está funcionando em algum lugar e noutro não está?

ma.pops

e que eu tava chamando essa classe atraves de uma outra classe java
e tava dando aquele problema.

Como eu ia usar essa classe em um projeto web eu continue fazendo
ai chamei dem uma pagina em jsp e funcionou
não sei porque mais esta funcionando
mais cara obrigado pela atenção

flw

Criado 20 de junho de 2009
Ultima resposta 22 de jun. de 2009
Respostas 10
Participantes 2