Amigao acho q faltou vc mapear ela no seu hibernate.cfg.xml
exemplo:
<mapping class="br.com.teste.Produto"/>
abraços
Amigao acho q faltou vc mapear ela no seu hibernate.cfg.xml
exemplo:
<mapping class="br.com.teste.Produto"/>
abraços
Opa Cherubini, tudo beleza?
Cara, eu não tenho o arquivo hibernate.cfg.xml.
Pelo que entendi na apostila, quando usamos Annotations não usamos esse arquivo,
mas criamos uma instância de AnnotedClass, conforme a classe GeraTabela. Pelo que entendi,
o método addAnnotedClass já faz isso.
Na Apostila não tem esse arquivo, só o Hibernate.properties mesmo. Será que é isso?
vc criou o o banco teste?
você tem que ativar a exportação de esquemas DDL para o banco no seu arquivo de propriedades. É só adicionar às propriedades:
Ah, e você também precisa criar o banco antes, como o lgweb falou
modifica isso:
new SchemaExport(cfg).create(true, false);
coloca assim:
new SchemaExport(cfg).create(true, true);
esse segundo argumento diz “Crie a tabela” ou mais ou menos isso.
Aí galera, eu fiz os reparos necessários, porém ainda não funcionou. O Banco teste já existe e tal, adicionei a linha que o amigo que tem um avatar de robozinho (foi mal, esqueci seu nick) me disse, mas ainda nao obtive êxito. Quanto a não aparecer nada no console do Eclipse, estava faltando configurar o log4j e adicionar a biblioteca, daí agora eu vejo o que tá acontecendo.
Engraçado que em algumas partes do log aparece algo do tipo:
"exporting Schema to database"
"echoing all SQL code"
"export Schema to database complete"
Parece que vai, mas não vai. Daí eu testei a conexão com o Banco, colocando minha senha errada de propósito no Hibernate.properties, mas deu connection refused. Ou seja, ele conecta ao banco.
Mas vendo os logs, atentei para uma outra coisa:
"Hibernate Validator not found: ignoring"
Será que falta esse carinha? Engraçado que na própria documentação diz que ele não é necessário.
Espero que continuem me ajudando. Grato a todos que me responderam até aqui.
vc fez a alteração que eu postei ? ja passei por isso com o mesmo exercicio e tinha esquecido isso. pelo seu codigo esse é o problema .
Oi egamorim , pior que eu fiz viu. Já tô começando a pensar que pode ser pau de import. Eu estou só com o hibernate-core e o hibernate-annotations. Só eles dois são o suficiente?
Ops, comando errado. Era pra ser:
my bad :roll:
Como as coisas ficaram:
Meu hibernate.properties:
hibernate.dialect = org.hibernate.dialect.MySQLDialect
hibernate.connection.driver_class = com.mysql.jdbc.Driver
hibernate.connection.url = jdbc:mysql://localhost/teste
hibernate.connection.username = root
hibernate.connection.password = minhaSenha
hibernate.show_sql = true
hibernate.format_sql = true
hibernate.hbm2ddl.auto = create
Minha Classe Produtos:
@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;
}
}
Minha classe GeraTabelas:
public class GeraTabelas {
public static void main(String[] args) {
// Cria uma configuração para a classe Produto
AnnotationConfiguration cfg = new AnnotationConfiguration();
cfg.addAnnotatedClass(Produto.class);
new SchemaExport(cfg).create(true, true);
}
}
Acho que no código tá tudo certo. Talvez o problema seja o alinhamento de Saturno com Plutão, ou uma parte do Cosmos que explodiu e se perdeu em camadas dispersas de tempo contíguo.
Eu realmente não sei o que está acontecendo. Só sei que a IDE continua a rir de mim, rsrs Quais os imports que vocês usam?
Nao sei se tem a ver mas tente colocar a anotacao @Table e implemente Serializable
@Entity
@Table(name="produto")
public class Produto implements Serializable{
@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;
}
}
Vou tentar fazer isso lgweb . Eu só fiquei com uma dúvida relacionada aos imports:
Na pasta hibernate-distribution/lib tem uma pasta chamada required. Pela Documentação o Hibernate deve ter os arquivos dessa pra funcionar.
Lá tem um arquivo chamado sl4j-api.jar. E na pasta raíz do hibernate (hibernate-distribution) tem o arquivo hibernate3. Ok.
Já na pasta hibernate-annotations/lib tem um monte de arquivo tbm, inclusive um repeteco do sl4j-api.jar e mais um hibernate-core.jar.
Dúvida: O que é repetido e o que não é? O que eu devo realmente adicionar?
Consegui Resolver o problema! Eu vi como o NetBeans organizava as bibliotecas pra poder montar igual no Eclipse. Além disso, precisei fazer umas pequenas alterações no meu projeto:
Primeiro:
Estava colocando tudo na pasta src, mas mudei. Dentro da pasta src criei um novo pacote, que contém as minhas classes. Na pasta src ficou o hibernate.properties
Segundo:
Na classes Produto, estava anotando assim: "@hibernate.annotations.Entity"
Troquei para a anotação: “@javax.persistence.Entity”
Terceiro:
Acho que eu havia falado algo sobre ter dúvida dos arquivos slf4j.jar, que vem tanto no hibernate como no hibernate-annotations. Eu não os adicionei de nenhuma dessas pastas. Eu tive a impressão de eles estarem dando conflito. Então baixei o slf4j e lá tem tudo atualizado pra mim. Os jars ficaram organizados assim:
Da pasta hibernate-annotations/lib:
dom4j.jar
ejb3-persistence.jar
hibernate-commons-annotations.jar
hibernate-core.jar
Da Pasta hibernate-distribution:
hibernate3.jar
Da Pasta hibernate-distribution/lib/required:
antlr-2.7.6
commons-collections-3.1
dom4j-1.6.1.jar
javassist-3.9.0.GA
jta-1.1
Da Pasta hibernate-distribution/lib/optional/ehcache:
ehcache.jar
hibernate-distribution/lib/bytecode/cglib:
cglib.jar
Da pasta hibernate-entity-manager:
hibernate-entity-manager.jar
Da pasta hibernate-entity-manager/lib:
hibernate-annotations.jar
Da pasta slf4j-1.5.8:
slf4j-api-1.5.8.jar
slf4j-simple-1.5.8.jar
log4j-over-slf4-1.5.8.jar
Além, claro, do mysql-connector
O resto ficou como antes mesmo. Obrigado a todo mundo que me ajudou até aqui. Sou grato a todos.
A classe Produto:
package hibernatefurnunciando;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
@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;
}
}
A classe GeraTabela:
package hibernatefurnunciando;
import org.hibernate.cfg.AnnotationConfiguration;
import org.hibernate.tool.hbm2ddl.SchemaExport;
public class GeraTabela {
public static void main(String[] a){
AnnotationConfiguration cfg = new AnnotationConfiguration();
cfg.addAnnotatedClass(Produto.class);
new SchemaExport(cfg).create(true, true);
}
}
Meu hibernate.properties:
hibernate.dialect org.hibernate.dialect.MySQLDialect
hibernate.connection.driver_class com.mysql.jdbc.Driver
hibernate.connection.url jdbc:mysql://localhost/teste
hibernate.connection.username root
hibernate.connection.password minhaSenha
hibernate.show_sql true
hibernate.format_sql true
Abaixo tem uma imagem do Projeto rodando, mas do lado esquerdo dá pra ver os jars que eu importei:
Boa tarde Galera,
Estou com o mesmo problema, estou utilizando o banco de dados Derby (em memória), e ao que me parece o hibernate não está conseguindo gerar a minha estrutura de banco de dados, que é composta por (schema.tabela), sendo que possuo diversos Schemas em todo o Banco de dados. No Sistema Utilizamos o Postgresql, porém estamos adotando a técnica do TDD (Test Driven Development), e para agilizar este processo optamos por utilizar um banco em memória (HSQLDB ou DERBY). Porém não estamos conseguindo da continuidade, devido a esse problema, vou postar a excessão gerada.
Se alguém souber ou puder ajudar, agradeço.
Excessão Gerada :
[quote] Caused by: org.hibernate.exception.SQLGrammarException: could not insert: [br.fpf.laboratorio.entitybean.TipoAmostra]
at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:67)
at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
at org.hibernate.id.insert.AbstractSelectingDelegate.performInsert(AbstractSelectingDelegate.java:40)
at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2163)
at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2643)
at org.hibernate.action.EntityIdentityInsertAction.execute(EntityIdentityInsertAction.java:51)
at org.hibernate.engine.ActionQueue.execute(ActionQueue.java:279)
at org.hibernate.event.def.AbstractSaveEventListener.performSaveOrReplicate(AbstractSaveEventListener.java:298)
at org.hibernate.event.def.AbstractSaveEventListener.performSave(AbstractSaveEventListener.java:181)
at org.hibernate.event.def.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:107)
at org.hibernate.ejb.event.EJB3PersistEventListener.saveWithGeneratedId(EJB3PersistEventListener.java:49)
at org.hibernate.event.def.DefaultPersistEventListener.entityIsTransient(DefaultPersistEventListener.java:131)
at org.hibernate.event.def.DefaultPersistEventListener.onPersist(DefaultPersistEventListener.java:87)
at org.hibernate.event.def.DefaultPersistEventListener.onPersist(DefaultPersistEventListener.java:38)
at org.hibernate.impl.SessionImpl.firePersist(SessionImpl.java:618)
at org.hibernate.impl.SessionImpl.persist(SessionImpl.java:592)
at org.hibernate.impl.SessionImpl.persist(SessionImpl.java:596)
at org.hibernate.ejb.AbstractEntityManagerImpl.persist(AbstractEntityManagerImpl.java:213)
… 30 more
Caused by: java.sql.SQLSyntaxErrorException: O esquema ‘LABORATORIO’ não existe
at org.apache.derby.impl.jdbc.SQLExceptionFactory40.getSQLException(Unknown Source)
at org.apache.derby.impl.jdbc.Util.generateCsSQLException(Unknown Source)
at org.apache.derby.impl.jdbc.TransactionResourceImpl.wrapInSQLException(Unknown Source)
at org.apache.derby.impl.jdbc.TransactionResourceImpl.handleException(Unknown Source)
at org.apache.derby.impl.jdbc.EmbedConnection.handleException(Unknown Source)
at org.apache.derby.impl.jdbc.ConnectionChild.handleException(Unknown Source)
at org.apache.derby.impl.jdbc.EmbedPreparedStatement.(Unknown Source)
at org.apache.derby.impl.jdbc.EmbedPreparedStatement20.(Unknown Source)
at org.apache.derby.impl.jdbc.EmbedPreparedStatement30.(Unknown Source)
at org.apache.derby.impl.jdbc.EmbedPreparedStatement40.(Unknown Source)
at org.apache.derby.jdbc.Driver40.newEmbedPreparedStatement(Unknown Source)
at org.apache.derby.impl.jdbc.EmbedConnection.prepareStatement(Unknown Source)
at org.apache.derby.impl.jdbc.EmbedConnection.prepareStatement(Unknown Source)
at org.hibernate.jdbc.AbstractBatcher.getPreparedStatement(AbstractBatcher.java:505)
at org.hibernate.jdbc.AbstractBatcher.prepareStatement(AbstractBatcher.java:94)
at org.hibernate.id.insert.AbstractSelectingDelegate.performInsert(AbstractSelectingDelegate.java:30) [/quote]
Muito Obrigado.
Eu estava com o mesmo problema, porém eu resolvi de forma mais simples:
Nesta linha:
Eu coloquei :
Acrescentando o 5 após o MySQL, aqui funcionou perfeitamente.
[quote=gesielRodrigues]Eu estava com o mesmo problema, porém eu resolvi de forma mais simples:
Nesta linha:
Eu coloquei :
Acrescentando o 5 após o MySQL, aqui funcionou perfeitamente.[/quote]
Eu estava com o mesmo problema. Que coisa mais maluca, mas adicionando só o 5 depois do MySQL resolveu tudo aqui tbm ‘-’ hauahu valeu.
cade
Olá galera! Acabei de passar pelo mesmo problema. solução proposta encontrasse no repositório git: https://github.com/plinio352/WebHibernate.git