Olá Pessoal,
Estou iniciando com java, porém, não consigo conectar minha aplicação com oracle 10g pelo hibernate, utilizo o netbens 6.7 que já tem os jars do hibernate no claspath. A saída diz que a propriedade hibernate.dialect não foi setada, sendo que quando não uso hibernate conecta normalmente. Estou me baseando na apostila FJ21 da Caelum, tentei fazer com eclipse mapeando os jars do hibernate e deu a mesma ocorrência, sendo que em sala de aula consiguimos fazer tudo mas conectando ao Mysql. Abaixo segue o código, a configuração do hibernate e a saida. Agradeço a atenção.
Versões
Oracle: 10.2.0.3.0
Netbeans: 6.7.1
Hibernate: 3.2.5
Hibernate Annotations: 3.3.1.GA
[size=18]Código.[/size]
//////
import org.hibernate.cfg.AnnotationConfiguration;
import org.hibernate.tool.hbm2ddl.SchemaExport;
public class GeraTabelas {
public static void main(String[] args) {
AnnotationConfiguration cfg = new AnnotationConfiguration();
cfg.addAnnotatedClass(Produto.class);
new SchemaExport(cfg).create(true, true);
}
}
//////
import javax.persistence.*;
@Entity
public class Produto {
@Id
@GeneratedValue
private Long id;
private String nome;
private String descricao;
private Double preco;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public String getDescricao() {
return descricao;
}
public void setDescricao(String descricao) {
this.descricao = descricao;
}
public Double getPreco() {
return preco;
}
public void setPreco(Double preco) {
this.preco = preco;
}
}
[size=18]Configuração - hibernate.cfg.xml - Criado apartir de um wizard do netbeans[/size]
<?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.OracleDialect</property>
<property name="hibernate.connection.driver_class">oracle.jdbc.driver.OracleDriver</property>
<property name="hibernate.connection.url">jdbc:oracle:thin:@10.10.0.21:1521:prod</property>
<property name="hibernate.connection.username">usuario</property>
<property name="hibernate.connection.password">senha</property>
</session-factory>
</hibernate-configuration>
[size=18]Saida[/size]
run:
19/08/2010 15:02:31 org.hibernate.cfg.annotations.Version <clinit>
INFO: Hibernate Annotations 3.3.1.GA
19/08/2010 15:02:31 org.hibernate.cfg.Environment <clinit>
INFO: Hibernate 3.2.5
19/08/2010 15:02:31 org.hibernate.cfg.Environment <clinit>
INFO: hibernate.properties not found
19/08/2010 15:02:31 org.hibernate.cfg.Environment buildBytecodeProvider
INFO: Bytecode provider name : cglib
19/08/2010 15:02:31 org.hibernate.cfg.Environment <clinit>
INFO: using JDK 1.4 java.sql.Timestamp handling
[color=red]Exception in thread "main" org.hibernate.HibernateException: The dialect was not set. Set the property hibernate.dialect.[/color]
at org.hibernate.dialect.Dialect.instantiateDialect(Dialect.java:233)
at org.hibernate.dialect.Dialect.getDialect(Dialect.java:211)
at org.hibernate.dialect.Dialect.getDialect(Dialect.java:226)
at org.hibernate.tool.hbm2ddl.SchemaExport.<init>(SchemaExport.java:86)
at org.hibernate.tool.hbm2ddl.SchemaExport.<init>(SchemaExport.java:61)
at GeraTabelas.main(GeraTabelas.java:10)
Java Result: 1
CONSTRUÍDO COM SUCESSO (tempo total: 1 segundo)
Cara, não sei se é isso, nunca tive esse erro, mas tenta colocar a OracleDialect com a versao do banco (10g,9i,9…etc) eu uso o Express 10g aqui para desenvolvimento e testes, e a propriedade fica
Só que uso JPA com hibernate como implementação, mas tirando as tags deve ser equivalente no hibernate puro.
O erro destacado em vermelho diz tudo.
Você precisa informar qual o dialeto de banco que deseja usar, no seu hibernate.cfg.xml
<property name="hibernate.dialect" value="INSIRA DIALETO AQUI" />
Seu caso seria um desses:
[quote]Oracle (any version) org.hibernate.dialect.OracleDialect
Oracle 9i org.hibernate.dialect.Oracle9iDialect
Oracle 10g org.hibernate.dialect.Oracle10gDialect[/quote]
Referência:
http://docs.jboss.org/hibernate/core/3.3/reference/en/html/session-configuration.html
[quote=jaziel.rc]Cara, não sei se é isso, nunca tive esse erro, mas tenta colocar a OracleDialect com a versao do banco (10g,9i,9…etc) eu uso o Express 10g aqui para desenvolvimento e testes, e a propriedade fica
Só que uso JPA com hibernate como implementação, mas tirando as tags deve ser equivalente no hibernate puro.[/quote]
Já fiz isso, sem sucesso, mesmo erro.
Abraço
[quote=cenriqueos][quote=jaziel.rc]Cara, não sei se é isso, nunca tive esse erro, mas tenta colocar a OracleDialect com a versao do banco (10g,9i,9…etc) eu uso o Express 10g aqui para desenvolvimento e testes, e a propriedade fica
Só que uso JPA com hibernate como implementação, mas tirando as tags deve ser equivalente no hibernate puro.[/quote]
Já fiz isso, sem sucesso, mesmo erro.
Abraço[/quote]
Sem sucesso
Faz um favor, coloca todos os códigos postados e o log entre as tags CODE. Clica no botão editar do seu post e depois no editor de texto, tem um botão Code, deixa o código e o log entre essas tags ;D
dai fica assim: org.hibernate.dialect.Oracle10gDialect bem mais fácil a visualização.
Tenta assim:
public class GeraTabelas {
public static void main(String[] args) {
AnnotationConfiguration cfg = new AnnotationConfiguration();
cfg.setProperty("hibernate.dialect", "org.hibernate.dialect.Oracle10gDialect");
cfg.addAnnotatedClass(Produto.class);
new SchemaExport(cfg).create(true, true);
}
}
Dai tira lá do xml, a linha referente ao dialect.
[quote=romarcio]Tenta assim:
public class GeraTabelas {
public static void main(String[] args) {
AnnotationConfiguration cfg = new AnnotationConfiguration();
cfg.setProperty("hibernate.dialect", "org.hibernate.dialect.Oracle10gDialect");
cfg.addAnnotatedClass(Produto.class);
new SchemaExport(cfg).create(true, true);
}
}
Dai tira lá do xml, a linha referente ao dialect.
[/quote]
Também não deu certo.
Tanta outra coisa então, muda a ordem no xml, coloca o dialect como ultima property como no exemplo.
<property name="hibernate.connection.driver_class">oracle.jdbc.driver.OracleDriver</property>
<property name="hibernate.connection.url">jdbc:oracle:thin:@10.10.0.21:1521:prod</property>
<property name="hibernate.connection.username">usuario</property>
<property name="hibernate.connection.password">senha</property>
<property name="hibernate.dialect">org.hibernate.dialect.Oracle10gDialect</property>
[quote=romarcio]Tanta outra coisa então, muda a ordem no xml, coloca o dialect como ultima property como no exemplo.
<property name="hibernate.connection.driver_class">oracle.jdbc.driver.OracleDriver</property>
<property name="hibernate.connection.url">jdbc:oracle:thin:@10.10.0.21:1521:prod</property>
<property name="hibernate.connection.username">usuario</property>
<property name="hibernate.connection.password">senha</property>
<property name="hibernate.dialect">org.hibernate.dialect.Oracle10gDialect</property>
[/quote]
Mesmo erro
Cara, que estranho.
Me diz uma coisa, onde vc está colocando o seu hibernate.cfg.xml? Ele está na dentro da pasta SRC ou em outra pasta do projeto?
[quote=romarcio]Cara, que estranho.
Me diz uma coisa, onde vc está colocando o seu hibernate.cfg.xml? Ele está na dentro da pasta SRC ou em outra pasta do projeto?[/quote]
Está dentro da pasta SRC e fora da package

[quote=cenriqueos][quote=romarcio]Cara, que estranho.
Me diz uma coisa, onde vc está colocando o seu hibernate.cfg.xml? Ele está na dentro da pasta SRC ou em outra pasta do projeto?[/quote]
Está dentro da pasta SRC e fora da package
[/quote]
Parece estar no local certo.
Muito sinistro isso. Faz um teste com outro banco, só pra ver se o problema acontece mesmo só com o Oracle. Se for esse o caso, dai tenta mudar os Drives do Oracle por outra versão.
Não deveria estar acorrendo esse problema.
[quote=romarcio][quote=cenriqueos][quote=romarcio]Cara, que estranho.
Me diz uma coisa, onde vc está colocando o seu hibernate.cfg.xml? Ele está na dentro da pasta SRC ou em outra pasta do projeto?[/quote]
Está dentro da pasta SRC e fora da package
[/quote]
Parece estar no local certo.
Muito sinistro isso. Faz um teste com outro banco, só pra ver se o problema acontece mesmo só com o Oracle. Se for esse o caso, dai tenta mudar os Drives do Oracle por outra versão.
Não deveria estar acorrendo esse problema.[/quote]
Então como eu disse antes, quando eu fiz o curso, conseguimos fazer tudo com o mysql, porém hoje com Oracle nada. Amanhã vou tentar com uma base Informix. Mesmo assim já agradeço pela atenção.
Abraço
Eu uso aqui no serviço o Oracle 10g, anteriormente usavamos o 9i, e nunca tive esse problema.
Fiz com uma base Informix e retornou o mesmo erro. Não sei mais o que fazer. Mais alguém?
Abraço
Cara, exclui esse arquivo hibernate.cfg.xml e cria um hibernate.properties
hibernate.connection.username = usuario
hibernate.connection.password = senha
hibernate.dialect = org.hibernate.dialect.Oracle10gDialect
hibernate.connection.driver_class = oracle.jdbc.driver.OracleDriver
hibernate.connection.url = jdbc:oracle:thin:@10.10.0.21:1521:prod
hibernate.show_sql = true
hibernate.format_sql = true
[quote=romarcio]Cara, exclui esse arquivo hibernate.cfg.xml e cria um hibernate.properties
hibernate.connection.username = usuario
hibernate.connection.password = senha
hibernate.dialect = org.hibernate.dialect.Oracle10gDialect
hibernate.connection.driver_class = oracle.jdbc.driver.OracleDriver
hibernate.connection.url = jdbc:oracle:thin:@10.10.0.21:1521:prod
hibernate.show_sql = true
hibernate.format_sql = true
[/quote]
Funcionou, obrigado pela ajuda e paciencia rs
Abraço