Java Persistence Hibernate and JPA Fundamentals