Estou querendo começar a densenvolver uma aplicação e gostaria de usar o Hibernate, mas não sei muito sobre o mesmo, alguém teria algum tutorial para indicar?
O hibernate tem suporte a procedure? Funciona legal com o PostgreSQL e com as procedures do mesmo?
Todas as suas perguntas podem ser respondidas através do seguinte link: www.hibernate.org/
Diversos tutoriais sobre o Hibernate:
http://www.google.com.br/search?hl=pt-BR&q=hibernate+%2B+tutorial&btnG=Pesquisar&meta=
Estou recebendo este erro:
Exception in thread "main" java.lang.Error: Unresolved compilation problems:
Entity cannot be resolved to a type
Table cannot be resolved to a type
Id cannot be resolved to a type
GeneratedValue cannot be resolved to a type
Column cannot be resolved to a type
Column cannot be resolved to a type
Type mismatch: cannot convert from long to int
at test.Portal.<init>(Portal.java:6)
at test.Test.main(Test.java:12)
Estou testando em um projeto dentro do Tomcat
Caso você esteja tentando usar o Hibernate Annotations, você deve baixa-lo e colocar no classpath:
http://annotations.hibernate.org/
Se for JPA, você precisa colocar alguma implementação do JPA no seu classpath, tente o Hibernate ou Toplink:
http://entitymanager.hibernate.org/
http://www.oracle.com/technology/products/ias/toplink/index.html
Lembrando que que nesse caso você estará usando JPA e não Hibernate puro.
O ultimo erro é porque você está tentando atribuir um long a um int.
ex.:
long a = 10;
int b = a; //Type mismatch: cannot convert from long to int
Como vi que estava tendo muito problemas com annotations, fui para o básico, fui aprender primeiro a usar o hibernate para depois passar para um nível mais alto.
Criei uma tabela simples em banco PostgreSQL e criei uma classe bean, criei o arquivo. hbm e fix a configuração no arqivo hibernte.cfg.xml e recebi este erro.
Initial SessionFactory create failed.java.lang.StringIndexOutOfBoundsException: String index out of range: 0
Exception in thread "main" java.lang.ExceptionInInitializerError
at test.HibernateUtil.<clinit>(HibernateUtil.java:15)
at test.Main.main(Main.java:12)
Caused by: java.lang.StringIndexOutOfBoundsException: String index out of range: 0
at java.lang.String.charAt(Unknown Source)
at org.hibernate.mapping.Column.setName(Column.java:61)
at org.hibernate.cfg.HbmBinder.bindColumns(HbmBinder.java:1083)
at org.hibernate.cfg.HbmBinder.bindColumnsOrFormula(HbmBinder.java:1525)
at org.hibernate.cfg.HbmBinder.bindSimpleValue(HbmBinder.java:1121)
at org.hibernate.cfg.HbmBinder.createClassProperties(HbmBinder.java:2080)
at org.hibernate.cfg.HbmBinder.createClassProperties(HbmBinder.java:2038)
at org.hibernate.cfg.HbmBinder.bindRootPersistentClassCommonValues(HbmBinder.java:359)
at org.hibernate.cfg.HbmBinder.bindRootClass(HbmBinder.java:273)
at org.hibernate.cfg.HbmBinder.bindRoot(HbmBinder.java:144)
at org.hibernate.cfg.Configuration.add(Configuration.java:675)
at org.hibernate.cfg.Configuration.addInputStream(Configuration.java:510)
at org.hibernate.cfg.Configuration.addResource(Configuration.java:572)
at org.hibernate.cfg.Configuration.parseMappingElement(Configuration.java:1593)
at org.hibernate.cfg.Configuration.parseSessionFactory(Configuration.java:1561)
at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:1540)
at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:1514)
at org.hibernate.cfg.Configuration.configure(Configuration.java:1434)
at org.hibernate.cfg.Configuration.configure(Configuration.java:1420)
at test.HibernateUtil.<clinit>(HibernateUtil.java:12)
... 1 more
Problema resolvido.
Como ninguém postou nada vou colocar a solução, o problema era que eu tinha esquicido de mapear a minha classe no arquivo hibernate.cfg.xml :???: