passos
Janeiro 25, 2005, 12:34pm
#1
Estou desenvolvendo um exemplo bem bobo com o hibernate mas estou recebendo o erro:
Exception in thread “main” java.lang.NoClassDefFoundError: javax/transaction/Synchronization
Será que estou esquecendo de alguma lib?
Por via das duvidas segue meu 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-2.0.dtd">
<hibernate-configuration>
<session-factory >
<!-- local connection properties -->
<property name="hibernate.connection.url">aqui ta minha url certinha</property>
<property name="hibernate.connection.driver_class">com.informix.jdbc.IfxDriver</property>
<property name="hibernate.connection.username">usuario</property>
<property name="hibernate.connection.password">senha</property>
<!-- property name="hibernate.connection.pool_size"></property -->
<!-- dialect for Informix -->
<property name="dialect">net.sf.hibernate.dialect.InformixDialect</property>
<property name="hibernate.show_sql">false</property>
<property name="hibernate.use_outer_join">true</property>
<property name="hibernate.transaction.factory_class">net.sf.hibernate.transaction.JTATransactionFactory</property>
<property name="jta.UserTransaction">java:comp/UserTransaction</property>
</session-factory>
</hibernate-configuration>
faltou o jta.jar no classpath
passos
Janeiro 25, 2005, 1:04pm
#3
Era isso mesmo, ao jogar essa lib pra la recebi: java.lang.UnsupportedOperationException: The user must supply a JDBC connection
Ele consegue abrir a conexão mas não consegue dar o retrive
[code]
public class HiberX {
private SessionFactory factory;
public HiberX() throws Exception {
Configuration cfg = new Configuration().addClass(bean.Cliente.class);
factory = cfg.buildSessionFactory();
}
public Cliente retrieve(String pk) throws Exception {
Session session = factory.openSession();
Cliente cliente = (Cliente) session.load(bean.Cliente.class, pk);
session.flush();
session.close();
return cliente;
}
}[/code]
vc precisa configurar o hibernate.properties corretamente para o hibernate conseguir conectar no banco…
não consigo entender pq deste erro, alguém pode me ajudar??
Exception in thread "main" java.lang.NoClassDefFoundError: estudo/amigoDAO
Aí vai meu amigoDAO:
[code]package Estudo;
import estudo.amigo;
import org.hibernate.*;
import org.hibernate.cfg.Configuration;
/**
*
@author root
*/
public class amigoDAO {
private SessionFactory factory;
private Hibernate hibernate;
/** Creates a new instance of amigoDAO */
public amigoDAO() throws Exception {
Configuration cfg = new Configuration();
cfg.addClass(amigo.class);
factory = cfg.buildSessionFactory();
}
public void insert(amigo friend) throws Exception {
Session session = factory.openSession();
session.save(friend);
session.flush();
session.close();
}
/* public java.util.List getList(String condicao) throws Exception{
Session session = factory.openSession();
List amigos = session.find(condicao);
session.flush();
session.close();
return amigos;
}*/
public amigo retrieve(String pk) throws Exception{
Session session = factory.openSession();
amigo friend = (amigo)session.load(amigo.class, pk);
session.flush();
session.close();
return friend;
}
public void delete(amigo friend) throws Exception{
Session session = factory.openSession();
session.delete(friend);
session.flush();
session.close();
}
public static void main (String a[]) {
amigo b = new amigo();
b.setNome(“teste”);
b.setEndereco(“testeend”);
try {
amigoDAO ad = new amigoDAO();
ad.insert(b);
System.out.println("..."+b.getEndereco());
} catch (Exception e) {
System.out.println(""+e);
}
}
}[/code]
fenrir
Março 27, 2007, 5:55pm
#6
No Java, Estudo é diferente de estudo .
E por padrão, nomes de packages não possuem letras maiúsculas, ou pelo menos não começam com tal.
valeu,
é q eu confundi o nome do projeto com o nome do pacote…
iniciante é fogo…
outra coisinha como se faz o “select” no hibernate, seria com o find?
é o método getList do exemplo do amigoDAO? a função ‘find’ não é reconhecida…
e pra q serve o retrieve? fiz alguns testes, mas não peguei a idéia…
Como assim não é reconhecida?
O retrive ali chama a função load que vai carregar um registro do banco, usando a ‘pk’ que tu está passando no parâmetro. Até onde eu sei, essa ‘pk’ é definida no hbm.xml.