Add jdbc-vs-jpa module: Spring Data JDBC vs JPA on a shared Order aggregate
Same Customer/Order/OrderItem domain modelled with Hibernate/Spring Data JPA and Spring Data JDBC side by side, both running through a shared StatementLoggingDataSource so SQL-statement counts are directly comparable. 11 tests, 11 captured transcripts, 6 doc chapters. Companion repo for the ankurm.com article on when to drop the ORM.
This commit is contained in:
@@ -0,0 +1,8 @@
|
||||
Scenario: load an Order inside a transaction, return it, then touch the lazy
|
||||
items collection AFTER the transaction (and its Hibernate session) has closed.
|
||||
|
||||
order.getItems().size() -> org.hibernate.LazyInitializationException: Cannot lazily initialize collection of role 'com.ankurm.jdbcvsjpa.jpa.Order.items' with key '34' (no session)
|
||||
|
||||
This is the LazyInitializationException every JPA tutorial warns about and few
|
||||
show you actually triggering. It is not a bug: the collection genuinely has not
|
||||
been read from the database yet, and the session that could read it is gone.
|
||||
Reference in New Issue
Block a user