1 [AWT-EventQueue-0] INFO org.hibernate.cfg.annotations.Version - Hibernate Annotations 3.4.0.GA
12 [AWT-EventQueue-0] INFO org.hibernate.cfg.Environment - Hibernate 3.3.0.SP1
15 [AWT-EventQueue-0] INFO org.hibernate.cfg.Environment - loaded properties from resource hibernate.properties: {hibernate.pool_size=10, hibernate.connection.driver_class=com.mysql.jdbc.Driver, hibernate.dialect=org.hibernate.dialect.MySQLDialect, hibernate.format_sql=true, hibernate.connection.username=root, hibernate.hbm2ddl.auto=update, hibernate.connection.url=jdbc:mysql://localhost/prova3poo, hibernate.bytecode.use_reflection_optimizer=false, hibernate.show_sql=true, hibernate.connection.password=****}
17 [AWT-EventQueue-0] INFO org.hibernate.cfg.Environment - Bytecode provider name : javassist
23 [AWT-EventQueue-0] INFO org.hibernate.cfg.Environment - using JDK 1.4 java.sql.Timestamp handling
80 [AWT-EventQueue-0] INFO org.hibernate.annotations.common.Version - Hibernate Commons Annotations 3.1.0.GA
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at br.prova3poo.thiago.dao.Dao.inserir(Dao.java:22)
at br.prova3poo.thiago.visao.VisaoCantor.jBSalvarActionPerformed(VisaoCantor.java:247)
at br.prova3poo.thiago.visao.VisaoCantor.access$100(VisaoCantor.java:24)
at br.prova3poo.thiago.visao.VisaoCantor$2.actionPerformed(VisaoCantor.java:168)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2012)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2335)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:404)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:253)
at java.awt.Component.processMouseEvent(Component.java:6203)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
at java.awt.Component.processEvent(Component.java:5968)
at java.awt.Container.processEvent(Container.java:2105)
at java.awt.Component.dispatchEventImpl(Component.java:4564)
at java.awt.Container.dispatchEventImpl(Container.java:2163)
at java.awt.Component.dispatchEvent(Component.java:4390)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4461)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4125)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4055)
at java.awt.Container.dispatchEventImpl(Container.java:2149)
at java.awt.Window.dispatchEventImpl(Window.java:2478)
at java.awt.Component.dispatchEvent(Component.java:4390)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:649)
at java.awt.EventQueue.access$000(EventQueue.java:96)
at java.awt.EventQueue$1.run(EventQueue.java:608)
at java.awt.EventQueue$1.run(EventQueue.java:606)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:105)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:116)
at java.awt.EventQueue$2.run(EventQueue.java:622)
at java.awt.EventQueue$2.run(EventQueue.java:620)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:105)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:619)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:275)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:200)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:190)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:185)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:177)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:138)
CONSTRUÍDO COM SUCESSO (tempo total: 22 minutos 27 segundos)
private void jBSalvarActionPerformed(java.awt.event.ActionEvent evt) {
Cantor cantor=new Cantor();
cantor.setNome(jTNome.getText());
cantor.setCpf(jTCpf.getText());
cantor.setRg(jTRg.getText());
cantor.setEmail(jTEmail.getText());
Dao<Cantor> dao = new Dao<Cantor>();
dao.inserir(cantor);
JOptionPane.showMessageDialog(null, "Dados gravados com sucesso!");
dao.fechar();
}
public class Dao <T>{
private Session sessao=HibernateUtilidades.getSessoes();
public void inserir(T tipo) {
sessao.beginTransaction();
sessao.save(tipo);
sessao.getTransaction().commit();
}
public void fechar(){
sessao.close();
}
public void atualizar(T t){
sessao.beginTransaction();
sessao.update(t);
sessao.getTransaction().commit();
}
public void deletar(T t){
sessao.beginTransaction();
sessao.delete(t);
sessao.getTransaction().commit();
}
public List recuperarTodos(T t){
return sessao.createQuery("from " + t.getClass().getName()).list();
}
}
public class HibernateUtilidades {
private static AnnotationConfiguration configAnotacoes = new AnnotationConfiguration();
private static Session sessoes;
public static void atualizaSchema(){
getConfigAnotacoes().addAnnotatedClass(br.prova3poo.thiago.modelo.Cantor.class);
getConfigAnotacoes().addAnnotatedClass(br.prova3poo.thiago.modelo.Compositor.class);
getConfigAnotacoes().addAnnotatedClass(br.prova3poo.thiago.negocio.Gravadora.class);
getConfigAnotacoes().addAnnotatedClass(br.prova3poo.thiago.negocio.Musica.class);
SchemaExport export = new SchemaExport(getConfigAnotacoes());
export.create(true, true);
sessoes = getConfigAnotacoes().buildSessionFactory().openSession();
}
public static AnnotationConfiguration getConfigAnotacoes() {
return configAnotacoes;
}
public static Session getSessoes() {
return sessoes;
}
}
E como ponto de partida deixo a baixo o esquema geral desse projeto abaixo pra você observar:
[img]http://i.imgur.com/EflfY.jpg[/img]
Finalmente resta minhas dúvidas: O que está errado? Como posso solucionar esse problema?
Agradeço desde já quem puder me ajudar!