Ola amigos gostaria de uma utilizar o hibernate sem mapear o objeto pelo xml (por exemplo usuario.hbm.xml) e retornar o resultado de uma query de sql.
Segue o codigo:
Config 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.dialect">org.hibernate.dialect.PostgreSQLDialect</property>
<property name="hibernate.connection.driver_class">org.postgresql.Driver</property>
<property name="hibernate.connection.url">jdbc:postgresql:Estudo_web</property>
<property name="hibernate.connection.username">postgres</property>
<property name="hibernate.connection.password">postgre</property>
<mapping class="modelo.TbUsuario"/>
<!-- Configurações de debug -->
<property name="show_sql">true</property>
<property name="hibernate.generate_statistics">true</property>
<property name="hibernate.use_sql_comments">true</property>
</session-factory>
</hibernate-configuration>
Na classe TbUsuario:
package modelo;
// Generated 23/09/2009 15:40:05 by Hibernate Tools 3.2.1.GA
import javax.persistence.Column;
import javax.persistence.ColumnResult;
import javax.persistence.Entity;
import javax.persistence.EntityResult;
import javax.persistence.FieldResult;
import javax.persistence.Id;
import javax.persistence.SqlResultSetMapping;
import javax.persistence.Table;
import org.hibernate.annotations.NamedNativeQuery;
import org.hibernate.annotations.NamedQuery;
/**
* TbUsuario generated by hbm2java
*/
@Entity
@Table(name="tb_usuario"
,schema="public"
)
public class TbUsuario implements java.io.Serializable {
private int CId;
private String CNome;
private String CEmail;
public TbUsuario() {
}
public TbUsuario(int CId) {
this.CId = CId;
}
public TbUsuario(int CId, String CNome, String CEmail) {
this.CId = CId;
this.CNome = CNome;
this.CEmail = CEmail;
}
@Id
@Column(name="c_id", unique=true, nullable=false)
public int getCId() {
return this.CId;
}
public void setCId(int CId) {
this.CId = CId;
}
@Column(name="c_nome")
public String getCNome() {
return this.CNome;
}
public void setCNome(String CNome) {
this.CNome = CNome;
}
@Column(name="c_email")
public String getCEmail() {
return this.CEmail;
}
public void setCEmail(String CEmail) {
this.CEmail = CEmail;
}
}
Classe HibernateUtil:
public class HibernateUtil3 {
private static SessionFactory factory;
static {
AnnotationConfiguration cfg = new AnnotationConfiguration();
cfg.addAnnotatedClass(TbUsuario.class);
//.addAnnotatedClass(SuaEntidade2.class);
factory = cfg.buildSessionFactory();
}
public Session getSession() {
return factory.openSession();
}
}
Na classe DAO:
public static void buscar_todos() {
try {
Session session = new HibernateUtil3().getSession();
Transaction tx = session.beginTransaction();
Query select = session.createQuery("select * from tb_usuario");
List objetos = select.list();
System.out.println(objetos);
} catch (HibernateException e1) {
e1.printStackTrace();
}
}
ERRO:
02/10/2009 10:25:52 org.hibernate.cfg.annotations.Version
INFO: Hibernate Annotations 3.3.1.GA
02/10/2009 10:25:52 org.hibernate.cfg.Environment
INFO: Hibernate 3.2.5
02/10/2009 10:25:52 org.hibernate.cfg.Environment
INFO: hibernate.properties not found
02/10/2009 10:25:52 org.hibernate.cfg.Environment buildBytecodeProvider
INFO: Bytecode provider name : cglib
02/10/2009 10:25:52 org.hibernate.cfg.Environment
INFO: using JDK 1.4 java.sql.Timestamp handling
02/10/2009 10:25:52 org.hibernate.cfg.AnnotationBinder bindClass
INFO: Binding entity from annotated class: modelo.TbUsuario
02/10/2009 10:25:52 org.hibernate.cfg.annotations.EntityBinder bindTable
INFO: Bind entity modelo.TbUsuario on table tb_usuario
02/10/2009 10:25:53 org.hibernate.cfg.AnnotationConfiguration secondPassCompile
INFO: Hibernate Validator not found: ignoring
02/10/2009 10:25:53 org.hibernate.connection.UserSuppliedConnectionProvider configure
WARNING: No connection properties specified - the user must supply JDBC connections
Exception occurred during event dispatching:
java.lang.ExceptionInInitializerError
at DAO.DAO_Usuario.buscar_todos(DAO_Usuario.java:93)
at controle.Controle_usuario.buscar_todos(Controle_usuario.java:99)
at visao.Tela.btn_exibir_todosActionPerformed(Tela.java:307)
at visao.Tela.access$200(Tela.java:23)
at visao.Tela$3.actionPerformed(Tela.java:131)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
at java.awt.Component.processMouseEvent(Component.java:6041)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3265)
at java.awt.Component.processEvent(Component.java:5806)
at java.awt.Container.processEvent(Container.java:2058)
at java.awt.Component.dispatchEventImpl(Component.java:4413)
at java.awt.Container.dispatchEventImpl(Container.java:2116)
at java.awt.Component.dispatchEvent(Component.java:4243)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4322)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3986)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3916)
at java.awt.Container.dispatchEventImpl(Container.java:2102)
at java.awt.Window.dispatchEventImpl(Window.java:2440)
at java.awt.Component.dispatchEvent(Component.java:4243)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:273)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:183)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:177)
at java.awt.Dialog$1.run(Dialog.java:1045)
at java.awt.Dialog$3.run(Dialog.java:1097)
at java.security.AccessController.doPrivileged(Native Method)
at java.awt.Dialog.show(Dialog.java:1095)
at java.awt.Component.show(Component.java:1422)
at java.awt.Component.setVisible(Component.java:1375)
at java.awt.Window.setVisible(Window.java:806)
at java.awt.Dialog.setVisible(Dialog.java:985)
at visao.Tela.btn_buscarActionPerformed(Tela.java:301)
at visao.Tela.access$500(Tela.java:23)
at visao.Tela$6.actionPerformed(Tela.java:207)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
at java.awt.Component.processMouseEvent(Component.java:6041)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3265)
at java.awt.Component.processEvent(Component.java:5806)
at java.awt.Container.processEvent(Container.java:2058)
at java.awt.Component.dispatchEventImpl(Component.java:4413)
at java.awt.Container.dispatchEventImpl(Container.java:2116)
at java.awt.Component.dispatchEvent(Component.java:4243)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4322)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3986)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3916)
at java.awt.Container.dispatchEventImpl(Container.java:2102)
at java.awt.Window.dispatchEventImpl(Window.java:2440)
at java.awt.Component.dispatchEvent(Component.java:4243)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:273)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:183)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:173)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:168)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:160)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:121)
Caused by: org.hibernate.HibernateException: Hibernate Dialect must be explicitly set
at org.hibernate.dialect.DialectFactory.determineDialect(DialectFactory.java:57)
at org.hibernate.dialect.DialectFactory.buildDialect(DialectFactory.java:39)
at org.hibernate.cfg.SettingsFactory.determineDialect(SettingsFactory.java:426)
at org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:128)
at org.hibernate.cfg.Configuration.buildSettings(Configuration.java:2009)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1292)
at org.hibernate.cfg.AnnotationConfiguration.buildSessionFactory(AnnotationConfiguration.java:859)
at util.HibernateUtil3.(HibernateUtil3.java:25)
… 63 more
CONSTRUÍDO COM SUCESSO (tempo total: 8 segundos)
Obrigado pela atenção de todos.