11:45 - 12:45
This year, the SQL language will celebrate its 32nd birthday. Hibernate turns 17 years old, JPA 12 years old, and jOOQ 10 years old. All these technologies are established, mature, and we know how they work. Or do we? In 2018, we are still having many heated discussions about how to persist our data, how to query it, how to model our transactions, how to model our domains. In the Java ecosystem, SQL-centric systems are often seen as "legacy", whereas JPA-centric ones as "modern" (or standard if we consider JPA). Given the ages of these technologies, this seems understandable. But is it reasonable? The SQL approach is more bulk data processing oriented (OLAP), whereas the JPA approach is more CRUD oriented (OLTP). SQL is more stateless/sessionless/side-effect free whereas JPA is stateful/sessionful/imperative. SQL runs set-based computational logic in the database, giving access to the sophistication of modern SQL optimisers, whereas JPA offers running record-based computational logic in the client, giving access to the vast possibilities of Java libraries and client-side processing. In this talk, Vlad (from Hibernate) and Lukas (from jOOQ) will discuss the pros and cons of each paradigm.