Oii pessoal estou tendo um problema com hibernate, mais nao consigo ver qual é meu erro.
tenho a entidade enquete;
import java.io.Serializable;
import java.util.List;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.OneToMany;
@Entity
public class Enquete implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Integer id;
private int status;
@Column(columnDefinition = "Text")
private String pergunta;
@Column(columnDefinition = "Text")
private String questao1;
private int questao1_votos;
@Column(columnDefinition = "Text")
private String questao2;
private int questao2_votos;
@Column(columnDefinition = "Text")
private String questao3;
private int questao3_votos;
@Column(columnDefinition = "Text")
private String questao4;
private int questao4_votos;
@OneToMany(mappedBy = "enquete")
private List<ComentarioEnquete> comentarioEnquetes;
//gets e sets
e tenho outra que se chama ComentarioEnquete
import java.io.Serializable;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.ManyToOne;
@Entity
public class ComentarioEnquete implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Integer id;
private String nome;
private String email;
@Column(columnDefinition = "Text")
private String comentario;
@ManyToOne
private Enquete enquete;
//gets e sets
e estou testando dessa forma...
public static void main(String args[]) {
Enquete enquete = new Enquete();
enquete.setPergunta("Oque você achou do site dukatitec?");
enquete.setStatus(0);
enquete.setQuestao1("Otimo");
enquete.setQuestao1_votos(10);
enquete.setQuestao2("Bom");
enquete.setQuestao2_votos(23);
enquete.setQuestao3("Regular");
enquete.setQuestao3_votos(3);
enquete.setQuestao4("Ruim");
enquete.setQuestao4_votos(0);
EnqueteDAO enqueteDAO = new EnqueteDAO();
enqueteDAO.insertEnquete(enquete);
}
só na hora que executo gera o seguinte erro...
22/09/2009 21:47:06 org.hibernate.cfg.annotations.Version <clinit>
INFO: Hibernate Annotations 3.3.1.GA
22/09/2009 21:47:06 org.hibernate.cfg.Environment <clinit>
INFO: Hibernate 3.2.5
22/09/2009 21:47:06 org.hibernate.cfg.Environment <clinit>
INFO: hibernate.properties not found
22/09/2009 21:47:06 org.hibernate.cfg.Environment buildBytecodeProvider
INFO: Bytecode provider name : cglib
22/09/2009 21:47:06 org.hibernate.cfg.Environment <clinit>
INFO: using JDK 1.4 java.sql.Timestamp handling
22/09/2009 21:47:06 org.hibernate.ejb.Version <clinit>
INFO: Hibernate EntityManager 3.3.2.GA
Exception in thread "main" javax.persistence.PersistenceException: [PersistenceUnit: dukatitecPU] class or package not found
at org.hibernate.ejb.Ejb3Configuration.addNamedAnnotatedClasses(Ejb3Configuration.java:1092)
at org.hibernate.ejb.Ejb3Configuration.addClassesToSessionFactory(Ejb3Configuration.java:871)
at org.hibernate.ejb.Ejb3Configuration.configure(Ejb3Configuration.java:758)
at org.hibernate.ejb.Ejb3Configuration.configure(Ejb3Configuration.java:191)
at org.hibernate.ejb.Ejb3Configuration.configure(Ejb3Configuration.java:253)
at org.hibernate.ejb.HibernatePersistence.createEntityManagerFactory(HibernatePersistence.java:125)
at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:51)
at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:33)
at br.com.dukatitec.utils.PrincipalDAO.<init>(PrincipalDAO.java:15)
at br.com.dukatitec.enquete.dao.EnqueteDAO.<init>(EnqueteDAO.java:10)
at TESTES.teste.main(teste.java:20)
Caused by: java.lang.ClassNotFoundException: br.com.dukatitec.enquete.entity.CometarioEnquete
at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:247)
at org.hibernate.util.ReflectHelper.classForName(ReflectHelper.java:112)
at org.hibernate.ejb.Ejb3Configuration.classForName(Ejb3Configuration.java:1008)
at org.hibernate.ejb.Ejb3Configuration.addNamedAnnotatedClasses(Ejb3Configuration.java:1080)
... 10 more
Java Result: 1
CONSTRUÍDO COM SUCESSO (tempo total: 1 segundo)
persistence.xml
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="1.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd">
<persistence-unit name="dukatitecPU" transaction-type="RESOURCE_LOCAL">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<class>br.com.dukatitec.enquete.entity.ComentarioEnquete</class>
<class>br.com.dukatitec.enquete.entity.Enquete</class>
<exclude-unlisted-classes>true</exclude-unlisted-classes>
<properties>
<property name="hibernate.connection.username" value="root"/>
<property name="hibernate.connection.driver_class" value="com.mysql.jdbc.Driver"/>
<property name="hibernate.connection.password" value=""/>
<property name="hibernate.connection.url" value="jdbc:mysql://localhost/dukatitec"/>
<property name="hibernate.cache.provider_class" value="org.hibernate.cache.NoCacheProvider"/>
<property name="hibernate.hbm2ddl.auto" value="update"/>
</properties>
</persistence-unit>
</persistence>
DAOS
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.EntityTransaction;
import javax.persistence.Persistence;
public abstract class PrincipalDAO {
private EntityManagerFactory emf;
private EntityManager em;
private EntityTransaction et;
public PrincipalDAO() {
emf = Persistence.createEntityManagerFactory("dukatitecPU");
em = emf.createEntityManager();
et = em.getTransaction();
}
public EntityManagerFactory getEmf() {
return emf;
}
public EntityManager getEm() {
return em;
}
public EntityTransaction getEt() {
return et;
}
}
metodo pra inserir
import br.com.dukatitec.enquete.entity.Enquete;
import br.com.dukatitec.utils.PrincipalDAO;
import javax.persistence.EntityTransaction;
import java.util.List;
import javax.persistence.Query;
public class EnqueteDAO extends PrincipalDAO {
public void insertEnquete(Enquete enquete) {
EntityTransaction t = getEm().getTransaction();
t.begin();
try {
getEm().persist(enquete);
t.commit();
} catch (Exception e) {
e.printStackTrace();
t.rollback();
}
}
Alguem pode me dar um luz,
desde ja obrigado ;D