I need to determine/settle on a persistence mechanism to use for a new project.
Which object/relational persistence mechanism will you use if you are starting a new project?

Hibernate ?
EJB Entity Bean ver 3.x ?
Castor ?
JDO ?
Others ?

Should I just write off EJB 2.x because of its “problems” and complexities and favor EJB 3 or Hibernate?

I only want to choose those technologies with its spec already released to the public and there are already actual stable implementations & support by server vendors.

Which strike the balance between being reasonably new but yet reasonably stable…with huge support from the developers community and vendors?

Note: I'll develop on J2EE 1.4 (supports up to EJB 2.1?) as I think J2EE is too new. What do you think ?