Não tenho certeza agora, mas isso não deveria estar no hibernate.properties? Tem esse arquivo em seu projeto?
Re:erro Hibernate Dialect must be explicitly set
3 Respostas
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