We are developing a payroll application and intend to use hibernate as an option to make our application DB independent. The payroll calculation is quite data intensive and can have about 300,000 - 500,000 records being processed at a time. Runs in multiple level loops (atleast 3) and needs to refer multiple rate tables depending on the task performed and being calculated. it also has multiple sets of calculation that needs to be done with different references. Effectively a fully fledged payroll activity based application. Few calculations that can be considered are task based, overtime, statutory (tax and PF), leave pay, holiday pay, other allowances. All for 3 different types of worker types, may or may not have similar pay structure. Performance is the number 1 criteria.

Our target to process this is 5 minutes.

My queries are,

1. Is Hibernate a suggested environment for this task?
2. How effective is HQL when compared to the database programming with SQL?
3. What are the considerations that we need to have to ensure we achieve optimum performance?

Do let me know if you need any further information for this.

Thank You