Hibernate 3 + annotations

18 respostas
pauloperes

Olá Pessoal,

Seguinte estou ainda tentando usar o hibernate, to com a versão 3, li em um tutorial que nesta verão não é preciso mais criar um arquivo xml e usar o xdoclet.

Nesta apostila ensina a criar um método para geração do Schema para a exportação do Banco de Dados, quando método é executado ele fala que não existe o arquivo hbm.xml correspodente a classe.

Alguém tem alguma idéia ou material que possa me ajudar.

Muito Atenciosamente,

Paulo Henrique Peres

18 Respostas

vivi_grieco

http://www.hibernate.org/hib_docs/v3/reference/en/html/

:wink:

vivi_grieco

Mostre o código do método para a exportação do BD…

pauloperes

Ai vai, tanto o código do método quanto a classe com as anotações.

Produto.java

import javax.ejb.GeneratorType;

@javax.ejb.Entity(name="Produto")
public class Produto {
    
    private Long id;
    private String descricao;
    
    
    public void setId(Long id){
        this.id = id;
    }
    
    
    @javax.ejb.Id(generate=GeneratorType.SEQUENCE)
    public Long getId(){
        return this.id;
    }
    
    public void setDecricao(String descricao){
        this.descricao = descricao;
    }
    
    @javax.ejb.Column(name = "descricao", nullable=true, length=50)
    public String getDescricao(){
        return this.descricao;
    }  
}

Método

public static void create(AnnotationConfiguration cfg){
      new SchemaExport(cfg).create(false,true);
}

Valeus,
Paulo

vivi_grieco

Eu crio uma classe HIbernateUtil.java dessa forma:

public class HibernateUtil {
 
    
    public static final SessionFactory sessionFactory;
    public static Configuration cfg;
        static {
        
            try {
                cfg= new AnnotationConfiguration()
                .addPackage("exemplo.classe")
                .addAnnotatedClass(Produto.class) 
                .setProperty("hibernate.dialect", "org.hibernate.dialect.MySQLInnoDBDialect")
                .setProperty("hibernate.show_sql", "true")
                .setProperty("hibernate.connection.driver_class", "com.mysql.jdbc.Driver")
                .setProperty("hibernate.connection.url", "jdbc:mysql://localhost/hibernate")
                .setProperty("hibernate.connection.username", "root")
                .setProperty("hibernate.connection.password", "");
                
                
                sessionFactory =cfg.buildSessionFactory();
            } catch (Throwable ex) {
                // Log exception!
                throw new ExceptionInInitializerError(ex);
            }
        }

        public static Session getSession()
                throws HibernateException {
            
            return sessionFactory.openSession();
        }
    }

E pra exportar o BD, faço igual vc fez, porém, ao invés de criar apenas cfg, crio HibernateUtil.cfg:

public static void create(AnnotationConfiguration cfg){
       new SchemaExport(HibernateUtil.cfg).create(false,true);
 }
pauloperes

Vivi,

Fiz do jeito que vc mandou, porém, naum está compilando, veja este método

public static org.hibernate.Session getSession() throws org.hibernate.HibernateException {         
             return sessionfactory.openSession();
         }

e o erro é este:

init:
deps-jar:
Compiling 1 source file to D:\_Cainfu\Hiber3\build\classes
D:\_Cainfu\Hiber3\src\HibernateUtil.java:24: illegal start of expression
         public static org.hibernate.Session getSession() throws org.hibernate.HibernateException {         
D:\_Cainfu\Hiber3\src\HibernateUtil.java:27: ';' expected
     }
2 errors
BUILD FAILED (total time: 0 seconds)

Outra dúvida, toda vez em que eu for rodar meu programa tenho que chamar a classe HibernateUtil, e para que serve exatemente a mesma, faria a mesma função do xdoclet para a geração dos hbm.xml.

Valeus
Paulo Henrique Peres

pauloperes

Vivi, resolvi, era um problema no código.

Mas ainda perdura uma dúvida, para que serve esta classe?

Muito Atenciosamente,
Paulo

Ricardo_Neves

Paulo onde vc conseguiu essa apostila, por favor se possivel me passe o link

pauloperes

Olá Ricardo, não lembro do link direito, porém coloquei ele aqui na pag. do laboratório que trabalho para vc baixar.

http://www.unipar.br/~lagg/paulo/fj21.pdf

Estava vendo q vc é de Paranavaí, bem perto daqui de Umuarama, vc faz faculdade lá?

Valeu,

Paulo

Ricardo_Neves

sim, cara faco faculdade aqui em paranavai na Unipar tb, hehe, valeu pela apostila

pauloperes

Ricardo,

Também faço facu na Unipar.

Valeu,

Paulo

Ricardo_Neves

heheeh, que legal hein

R

Oi Paulo, será que poderia me enviar essa apostila?
Estou tentando aprender hibernate e que ro começãr direto pela vs 3, mas está dificil de achar um tutorial mais simples para iniciantes…

meu email é [email removido]

Obrigado!!

Rodrigo.

herbertins

galeraa baixem essa apostila no site da caelum

www.caelum.com.br

eh deles a apostila eh muito boa

rbrugnollo

pauloperes:
Olá Ricardo, não lembro do link direito, porém coloquei ele aqui na pag. do laboratório que trabalho para vc baixar.

http://www.unipar.br/~lagg/paulo/fj21.pdf

Estava vendo q vc é de Paranavaí, bem perto daqui de Umuarama, vc faz faculdade lá?

Valeu,

Paulo

Não estou conseguindo baixar a apostila…

você pode me passá-la por e-mail ([email removido]) ou colocar um endereço para eu baixar?!

VALEU!!

pauloperes

Opa,

Baixe do site da caelum.

Aqui tem os cursos e suas respectivas apostilas

http://www.caelum.com.br/caelum/cursos.jsp

D

Ta aí o link.

[]'s

kissdemon

Dê uma olhada nesse screencast feita pela CAELUM.
Acho q deve te ajudar legal!! :wink:

http://blog.caelum.com.br/2007/05/15/screencast-primeiros-passos-para-a-jpa/

[]´s

Carlos

fccrestani

Bacana mesmo, o material todo está sendo muito útil.

Abraços

Criado 24 de maio de 2005
Ultima resposta 29 de jan. de 2008
Respostas 18
Participantes 9