Re:erro Hibernate Dialect must be explicitly set

3 respostas
fiaux

Não tenho certeza agora, mas isso não deveria estar no hibernate.properties? Tem esse arquivo em seu projeto?

3 Respostas

fiaux

http://www.hibernate.org/hib_docs/reference/en/html/session-configuration.html

D

minha aplicacao funcionava perfeitamente sem o uso de anotacoes, quando coloquei ta ai o erro. Alguem pode me ajudar.

org.hibernate.HibernateException: Hibernate Dialect must be explicitly set

Exception in thread main java.lang.ExceptionInInitializerError

at br.com.david.HibernateUtil.HibernateUtil.(HibernateUtil.java:23)

at br.com.david.HibernateUtil.ALunoDao.salvar(ALunoDao.java:18)

at br.com.david.TesteMain.main(TesteMain.java:17)

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:2073)

at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1298)

at org.hibernate.cfg.AnnotationConfiguration.buildSessionFactory(AnnotationConfiguration.java:859)

at br.com.david.HibernateUtil.HibernateUtil.(HibernateUtil.java:18)

aluno

@Entity
@Table(name=“aluno”)

public class Aluno {

public Aluno(){
	
}
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private int idAluno;

private String nome;
private String cpf;

//getters e setters

alunoDao

public class ALunoDao {

private Session session;

public ALunoDao(){
	
}

public void salvar(Aluno aluno){
	
	session = HibernateUtil.getSessionFactory().getCurrentSession();
	session.beginTransaction();
	session.save(aluno);
	session.getTransaction().commit();
	
}

}

a exceção dispara daqui

public class HibernateUtil {

private static  SessionFactory factory;

static {
	try {

		factory = new AnnotationConfiguration().addAnnotatedClass(Aluno.class)					.buildSessionFactory();
	
	} catch (Throwable ex) {

		System.err.println("falhou" + ex);
		throw new ExceptionInInitializerError(ex);

	}

}

public static SessionFactory getSessionFactory() {
	return factory;
}

}

Hibernate.cfg.xml

<property name="hibernate.dialect">
		org.hibernate.dialect.MySQLDialect
	</property>
	<property name="hibernate.connection.driver_class">
		com.mysql.jdbc.Driver
	</property>
	<property name="hibernate.connection.url">
		jdbc:mysql://localhost:3306/testeanotacoes
	</property>
	<property name="hibernate.connection.username">root</property>
	<property name="hibernate.connection.password"></property>


	<!-- Condiguração do c3p0 -->

	<property name="hibernate.c3p0.max_size">10</property>
	<property name="hibernate.c3p0.min_size">2</property>
	<property name="hibernate.c3p0.timeout">5000</property>
	<property name="hibernate.c3p0.max_statements">10</property>
	<property name="hibernate.c3p0.idle_test_period">3000</property>
	<property name="hibernate.c3p0.acquire_increment">2</property>

	<!-- Configurações de debug -->

	<property name="show_sql">true</property>
	<property name="use_outer_join">true</property>
	<property name="hibernate.generate_statistics">true</property>
	<property name="hibernate.use_sql_comments">true</property>

	<mapping class="br.com.david.Aluno"/>
	
	
</session-factory>

e log4j.properties ta ok.

D

problema resolvido, eu tava seguindo umas apostilas da net que atrapalham mais do que ajuda, na moral quem escrever tutorial tem que ter o minimo cuidado de testar o codigo que coloca. Bem mais vamos a solução.

novo ALunoDao

public void salvar(Aluno aluno){

try{
		session = HibernateUtil.getSessionFactory().openSession();
		Transaction tx=session.beginTransaction();
	
		session.save(aluno);
	
		tx.commit();
		session.flush();
		session.close();
	}catch (Exception e) {
		System.out.print("erro em salvarDAO");
	}
	
	
}

novo HibernateUtil

public class HibernateUtil {

private static  SessionFactory factory;

static {
	try {                                 

		factory = new AnnotationConfiguration().configure()
				.buildSessionFactory();
	
	} catch (Throwable ex) {

		System.err.println("falhou" + ex);
		throw new ExceptionInInitializerError(ex);

	}

}

public static SessionFactory getSessionFactory() {
	return factory;
}

}

valeu pela ajuda de todos e vamos em frente.

Criado 31 de março de 2008
Ultima resposta 1 de abr. de 2008
Respostas 3
Participantes 2