“Requirements: Good knowledge of JPA/Hibernate” - does it seem familiar? Well, it should, since this sentence happens to be on almost every Java related job description. Majority of applications (especially web applications) use database as back-end and those databases are accessed using ORM technologies. Therefor it seems pretty obvious that developers should have rather deep knowledge of ORMs they use. This is however not always the case.
The biggest advantage of JPA is also its biggest flaw – simplicity. Learning curve is really, really short. You quickly learn how to map your entities with tables form the database, persist/merge/delete operations work out of the box. It take maybe few hours to grasp the cascade concept, but after that you are ready to go... or so it seems.
Does LazyInitializationException ring any bell? Have you ever persisted your entity, but it never actually showed up in the actual database? Ever worked on an application that was running smoothly on development environment, but deployed to a production was facing major performance issues?
Are any above familiar? Do you constantly fear that one day they might strike right at you, causing major damage on the most vulnerable part of your code? In this talk I will help you finally stand up for yourself and face those issues once and for all. We will enter vast, dangerous world of JPA and travel way beyond simple entity mappings. I will guide through fundamentals of advanced topics of JPA programming and even though this will be only a shot trip, before this talk finishes, you will have better understanding of your favorite ORM standard.
Are you ready to dive in?