Help Hibernateee

4 respostas
herbertins

Aew galera não sei mais o que faço estou tentando resolver um problema com hibernate aquui e não conssigo.

olhem meu código e veja o que está errado

[color=red]está eh a minha classe que cria uma session[/color]

package br.com.herbert;

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.AnnotationConfiguration;

public class HibernateFactory {
	
	private static SessionFactory factory;
	
	HibernateFactory(){
		AnnotationConfiguration conf = new AnnotationConfiguration();
		conf.addAnnotatedClass(Cliente.class);
		factory = conf.buildSessionFactory();	
	}
	
	public Session getSession(){
		return factory.openSession();
	}
	
}

[color=red]está é minha classe main[/color]

package br.com.herbert;

import org.hibernate.Session;

public class Inicio {
	
	public static void main(String[] args){
		
		//ClienteDAO dao = new ClienteDAO();
		
		Session session = (Session) new HibernateFactory().getSession();
		Cliente p = new Cliente();
		p.setNome("Nome aqui");
		p.setDescricao("Descrição aqui");
		session.save(p);
		System.out.println("ID do produto: " + p.getId());
		session.close();
	
		//dao.Adiciona();
		
	}

}

[color=red]galera essa eh a excessao que é lançada quando tento rodar o main[/color]

Exception in thread "main" 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:409)
	at org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:119)
	at org.hibernate.cfg.Configuration.buildSettings(Configuration.java:2006)
	at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1289)
	at br.com.herbert.HibernateFactory.<init>(HibernateFactory.java:14)
	at br.com.herbert.Inicio.main(Inicio.java:11)

4 Respostas

herbertins

UP

herbertins

galera estou quase desistindo desse hibernate nao conssigo fazer essa parada funcionar

ACDias

Parece que você não especificou o dialeto no arquivo de configuração (hibernate.cfg). Posta ele aí pra gente olhar.
Mas deve ser isso q esteja faltando:
<property name=“hibernate.dialect”>org.hibernate.dialect.PostgreSQLDialect</property>
Isso se seu sgbd for o postgre

ACDias
Agora q vi q vc não está usando xml.
package br.com.herbert;
 
 import org.hibernate.Session;
 import org.hibernate.SessionFactory;
 import org.hibernate.cfg.AnnotationConfiguration;
 
 public class HibernateFactory {
 	
 	private static SessionFactory factory;
 	
 	HibernateFactory(){
 		AnnotationConfiguration conf = new AnnotationConfiguration();
 		conf.addAnnotatedClass(Cliente.class);
 		factory = conf.buildSessionFactory();	
 	}
 	
 	public Session getSession(){
 		return factory.openSession();
 	}
 	
 }
Note que em seu código em lugar nenhum você especifica ao hibernate qual o banco, o driver do sgbd, o dialeto sql, enfim o q teria no arquivo de configuração xml do hibernate. Nesse caso você carrega essas configurações assim:
AnnotationConfiguration conf = new AnnotationConfiguration();
conf.addAnnotatedClass(Cliente.class).
setProperty("hibernate.connection.driver_class","org.postgresql.Driver").
setProperty("hibernate.connection.url","jdbc:postgresql:testeHibernate").
setProperty("hibernate.connection.username", "postgres").
setProperty("hibernate.connection.password", "postgres").
setProperty("hibernate.dialect","org.hibernate.dialect.PostgreSQLDialect");
factory = conf.buildSessionFactory();
Criado 26 de janeiro de 2007
Ultima resposta 27 de jan. de 2007
Respostas 4
Participantes 2