I would use Java Enterprise Edition in conjunction with Hibernate and maybe Seam.
Hibernate is a great abstraction layer for making database queries. Even if you change the database (i.e. from MySQL to PostgresSQL) you don't have to worry. Your code will stay the same. And more importantly you have a mapping for the objects in Java to the tables in the database, which is not that easy usually, especially with class hierarchies that are not just transferable like that into tables.
I've done enterprise applications with Java including JSF, RichFaces, Seam, Hibernate, BIRT, JBoss, Maven. I've been working for a company that does the human resources part for other companies and they needed an enterprise application for their competence management.
What other language should i learn to do that proyect?
You will see what you need when you do it. I wouldn't learn them beforehand.
But probably: SQL or HQL if you decide for Hibernate (Hibernate Query Language -- very similar to SQL). XML (often used for configuration files of all kinds, severs, deployment with Maven, etc.)
@Kulver: Speed is not an issue for an enterprise application. Stability is more important. And yes, you need platform independency for enterprise applications or your organization is very limited to a single platform.
Java is not slow. Read this benchmark:
http://scribblethink.org/Computer/javaCbenchmark.html Here is a listing about things are slow and fast in Java:
http://stackoverflow.com/questions/2163411/why-did-java-have-the-reputation-of-being-slowJava was slow a long time ago (the benchmark is from 2004), but today it is not true anymore. It uses JIT. That even has an advantage over C or C++: The longer it runs the more it will be optimized, because it is compiled again over time including the knowledge which parts where used the most. So the longer it runs, the better. And this is good for enterprise applications as they run all day, most of the time even day and night on a server. And that's where Java excels, but also i.e. C#.
The only reason people still might think Java is slow is the somewhat slow GUI library for desktop application and the time the JVM needs to startup. And maybe the rumors that Java is interpreted only (it isn't).
Startup time is not an issue for an enterprise application.
And another thing is: C or C++ is too error prone to use it for enterprise applications. Of course you can say you need better programmers that understand how to do memory management the right way and avoid all the other traps they might fall into, but sadly that is not our world. People do mistakes all the time and there is only a fraction of them who can really use the performance possibilities of low-level languages. In most cases you will be better off using a language on more abstract level which build up on highly optimized code underneath unless you are really working with heavily limited resources, need direct hardware access (writing drivers ...) or have heavy computations all the way.
If you have heavy computations only for some parts, those can be excluded, so you write only those in C or C++ or ASM, but the rest in a more high level language