Patrycja Werzynowicz is a software visionary and expert specialized in automated software engineering and Java technologies. She is the founder and CTO of Yonita, Inc., a California-based start-up with focus on automated detection and refactoring of software defects, including security vulnerabilities, performance and concurrency anti-patterns, and database issues.
She is also associated with Warsaw University of Technology, where she serves as Technical Manager of Passim/Synat, an intelligent search platform. Patrycja is finalizing PhD in Computer Science at University of Warsaw. She is a regular speaker at major academic as well as industrial conferences, including JavaOne, Devoxx, JavaZone, Jazoon, OOPSLA, ASE, and others.
Patrycja’s interests focus on patterns and anti-patterns in software along with automated software engineering, particularly static and dynamic analysis techniques to support program verification, comprehension, and optimization.
You can follow her on Twitter at @yonlabs.
Hibernate is an elegant, straightforward, and easy to use library. This is undeniably true for simple domain models. What about more complex ones? It turns out that in case of complex domain models we usually run into interesting hibernate issues relating to performance or correctness.
Here, we will present several puzzles from hibernate and JPA to illustrate tricky use cases that have interesting side-effects, lead to incorrect behavior, or impose significant performance overhead. Come and see if you can solve them.
A Performance Comparison of JPA Implementations
Have you ever struggled with slow JPA performance? Are you in need for speed? What about scalability? In this talk, 4 providers: EclipseLink, Hibernate, DataNucleus, and OpenJPA compete for the title of the fastest and most scalable JPA provider. We compare, contrast, and explain performance characteristics of these providers, mainly focusing on mappings of complex structures (collections and sub-objects), JPQL, and caching. The test-cases for growing data sets reveal an increasing curve of execution times. The presented code examples along with exec times show the differences among the JPA providers, highlighting their strengths and weaknesses and providing the estimates for acceptable data volumes and numbers of concurrent sessions.