Hibernate e PostgreSQL

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 :???: