Problemas com Annotations no Hibernate

21 respostas
davidbuzatto

Pessoal, comecei há alguns dias estudar o JEE, estou usando para as atividades práticas a apostila da Caelum, ela tem vários exemplos, é fácil de entender, mas talvez por ignorância minha tenho encontrado muuuitos problemas em algumas partes, pois faltam informações (isso até é bom pois nos força a quebrar a cabeça para entender, apesar de ser cansativo...)

Nunca trabalhei com annotations e estou vendo isso agora no capítul sobre o Hibernate. Na página 94, tem um exemplo de uma classe Produto
import org.hibernate.annotations.*;
import org.hibernate.mapping.*;

@Entity
public class Produto {
    
    private Long id;
    private String nome;
    private String descricao;
    private double preco;
    
    @Id @GeneratedValue
    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;
    }
    
    @Column(name= "descri", nullable = true, length = 50)
    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;
    }

}

As annotations Entity e Column eu achei, mas a Id e a GeneratedValue não. Procurei em todos os pacotes.
Importei para o netbeans apenas o hibernate*.jar e o hibernate-annotations.jar. Está faltando algo?

Thanx!

21 Respostas

A

Ta faltando o jar do ejb 3.

urubatan

outra coisa, faltou ler a documentação do hibernate-annotations

a anotação @Entity que tem que ser utilizada é a @javax.persistence.Entity
a do pacote do hibernate é um complemento para ela, não uma substituta.

davidbuzatto

Obrigado!
Achou elas!

Num pensei que programação para web fosse tão chato… Nossa… Logo eu aprendo :smiley:

davidbuzatto

Valeu kra!

É que como falei to usando a apostila da Caelum e ela peca pela falta de muitas informações…

Mesmo assim obrigado!

Preciso e muito me atualizar :smiley:

davidbuzatto

Nussa… que saco viu…

E o arquivo hibernate.properties? To colocando na pasta src do netbeans e quando mando compilar dá pau… o que devoi fazer:?

plentz

Da pau em que, especificamente?

davidbuzatto

Ele diz que eu não configurei o dialeto, mas eu configurei. Ele não está enxergando o arquivo de properties

davidbuzatto

Ja voloquei o arquivo de properties no pacote que está a minha classe tbm e não fuincinou. Olha o erro

Exception in thread "main" org.hibernate.HibernateException: The dialect was not set. Set the property hibernate.dialect. at org.hibernate.dialect.Dialect.getDialect(Dialect.java:610) at org.hibernate.dialect.Dialect.getDialect(Dialect.java:632) at org.hibernate.tool.hbm2ddl.SchemaExport.<init>(SchemaExport.java:84) at org.hibernate.tool.hbm2ddl.SchemaExport.<init>(SchemaExport.java:59) at testehibernate.GeraTabelas.create(GeraTabelas.java:23) at testehibernate.GeraTabelas.main(GeraTabelas.java:32)

Anderson_Schmidt

olá,

Até onde eu sei, o dialeto é definido no persistence.xml.

Exemplo:

Flws!

davidbuzatto

é que o magnífico tutorial que estou seguindo usa o arquivo hibernate.properties ao invés do arquivo xml de configuração.

Valeu!

L

E ae David!

Bom que BD você está usando? Eu segui esta apostila também e
não tive problemas.
Posta aí o trecho do properties no qual você seta o dialeto.

[]'s

robson_vs

Então cara para vc importar estas annotations vc precisa colocar no seu projeto o jar do ejb3-persistence.jar, pois é dela q vc deve importar o @id e o @Entity

J

LeonardoCComp:
E ae David!

Bom que BD você está usando? Eu segui esta apostila também e
não tive problemas.
Posta aí o trecho do properties no qual você seta o dialeto.

[]'s

Pessoal, tendo o mesmo problema posto a linda de inclusão do dialeto:

the_burns

pessoal estou tendo o mesmo problema. O eclipse não acha o hibernate.properties.

segue o propeties:

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=1234

segue o erro

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 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 teste.main(teste.java:12)

o q pode ser? como trabalhar com o hibernate.properties?

W

Olá.

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

Wellington

the_burns

cara, o link q vc me enviou tá quebrado

mas de qlqr forma to lendo de novo a documentação dos caras

W

É por causa do ponto final.

Segue novamente:

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

the_burns

Cara, valw mesmo pelo link, resolvi o problema com ele… :lol:

agora estou enfrentando um probleminha de permissão de acesso ao banco :roll:. vou dar uma olhada, qlqr coisa eu posto aki.

Abraço

Paulo_Silveira

davidbuzatto:
é que o magnífico tutorial que estou seguindo usa o arquivo hibernate.properties ao invés do arquivo xml de configuração.

Valeu!

David, o tutorial que voce esta seguindo esta certo. Tanto faz voce usar o xml ou o properties no hibernate, voce que esta colocando no lugar errado o arquivo. Sempre coloque no path do seu projeto.

Se quer um material mais mastigado, que ate mesmo os imports aparecem em grande parte do codigo, use o material do FJ-28. Mas creio que é melhor mesmo voce bater cabeca do que so copiar e colar.

ddduran

davidbuzatto:
Obrigado!
Achou elas!

Num pensei que programação para web fosse tão chato… Nossa… Logo eu aprendo :D

Só uma observação.
Hibernate não tem haver com desenvolvimento web, ele pode ser usado em uma aplicação SE (se é que posso dizer assim) tranquilamente.

the_burns

opa wellington.sampaio valew pelas dicas, agora estou com a conexão normalizada com o banco

Criado 12 de setembro de 2006
Ultima resposta 31 de mar. de 2008
Respostas 21
Participantes 12