package br.com.caelum.hibernate;
import javax.persistence.Column;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import org.hibernate.annotations.Entity;
@Entity
public class Produto {
@Id
@GeneratedValue
private Long id;
private String nome;
@Column(name = "descricao", nullable = true, length = 50)
private String descricao;
private Double preco;
public String getDescricao() {
return descricao;
}
public void setDescricao(String descricao) {
this.descricao = descricao;
}
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 Double getPreco() {
return preco;
}
public void setPreco(Double preco) {
this.preco = preco;
}
}
package br.com.caelum.hibernate;
import org.hibernate.cfg.AnnotationConfiguration;
import org.hibernate.tool.hbm2ddl.SchemaExport;
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);
}
}
No exemplo da apostila, diz que quando rodasse o GeraTabela o eclipse mostraria uma mensagem cobrando o arquivo de log:
[color=red]log4j:WARN No appenders could be found for logger (org.hibernate.cfg.annotations.Version).
log4j:WARN Please initialize the log4j system properly.[/color]
e que depois mostraria o código sql que ele usou para criar a tabela.
Mas quando eu rodo o GeraTabela dá a mensagem acima, ou seja:
[color=red]log4j:WARN No appenders could be found for logger (org.hibernate.cfg.annotations.Version).
log4j:WARN Please initialize the log4j system properly.[/color]
Mas não aparece o sql usado para criar a tabela e nem mesmo cria uma tabela !!
No seu hibernate.properties esta descrito que o usuário do banco é root e a senha é vazia, ou seja, sem nada. O seu banco esta com este usuário e senha?
Eu também estou tentando seguir os exercícios da Caelum, porém desta parte eu passei, mas parei em outra!! :roll: http://www.guj.com.br/posts/list/60386.java
Caros,
Estou tendo o mesmo erro, porém não eh o import…
Estou seguindo a apostila Hibernate com Anotações
Por: Raphaela Galhardo Fernandes e Gleydson de A. Ferreira Lima
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
//Anotação que informa que a classe mapeada é persistente @Entity
//Informando nome e esquema da tabela mapeada @Table(name=“aluno”, schema=“anotacoes”)
public class Aluno {
//Definição da chave primária @Id
//Definição do mecanismo de definição da chave primária @GeneratedValue(strategy = GenerationType.SEQUENCE)
//Informa o nome da coluna mapeada para o atributo @Column(name=“id_aluno”)
private int id;
private int matricula;
private String nome;
private long cpf;
//Construtor padrão
public Aluno(){}
//Métodos getters e setters
public long getCpf() { return cpf; }
public void setCpf(long cpf) { this.cpf = cpf; }
public int getId() { return id; }
public void setId(int id) { this.id = id; }
public int getMatricula() { return matricula; }
public void setMatricula(int matricula) {
this.matricula = matricula;
}
public String getNome() { return nome; }
public void setNome(String nome) { this.nome = nome; }
Ta dando:
log4j:WARN No appenders could be found for logger (org.hibernate.cfg.annotations.Version).
log4j:WARN Please initialize the log4j system properly.
Exception in thread “main” org.hibernate.HibernateException: /hibernate.cfg.xml not found
at org.hibernate.util.ConfigHelper.getResourceAsStream(ConfigHelper.java:147)
at org.hibernate.cfg.Configuration.getConfigurationInputStream(Configuration.java:1405)
at org.hibernate.cfg.Configuration.configure(Configuration.java:1427)
at teste.Listagem12.main(Listagem12.java:19)
Oi gente,
na minha opinião, seria só configurar um Appender para a instância do log4j.
Pode até configurar o appender default, para loggar mensagens na console, assim:
BasicConfigurator.configure();
Se usar um appender (interface Appender), é assim:
Appender appender = new FileAppender([i]... parâmetros ...[/i]);
BasicConfigurator.configure(appender);
O warning do log4j se refere ao fato que não está achando appenders na configuração dele.