Hibernate and one-to-many, one-to-one, many-to-many relationships