Well, in my opinion it is even better to use associations in hibernate. If I understand you right, the other solution would be to manage all foreign keys manually, e.g. having an attribute foreign_id as long instead of an object-type attribute.
The good thing about using associations is, that you hibernate is able to manage all things about foreign keys and loading. Of course, you have to do the right config and usage to get performance gains, but if you use it right, it's going to be way faster than without it. For example with a simple HQL "from MyParent join fetch childs" you could retrieve all parents and their childs in a single statement. Doing it manually you would probably select parents first and then the childs of every single parent (
n+1 select problem).
Consult the manual, there are several other examples of how to improve performance.