Hibernate 8 + Jakarta Persistence 4: EntityAgent and stateless sessions demo

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_017ic4b7jUQrypvpE1ix1k7V
This commit is contained in:
asmhatre
2026-11-14 01:34:34 +05:30
co-authored by Claude Sonnet 5.5
commit 453fad0ee7
29 changed files with 1109 additions and 0 deletions
+45
View File
@@ -0,0 +1,45 @@
=== H2 ===
get(Book.class, "978-1", OPTIMISTIC)
right after get() (1 statement)
select b1_0.isbn,b1_0.price,b1_0.publisher_id,b1_0.title,b1_0.version,b1_0.views from book b1_0 where b1_0.isbn=? for update
during commit (0 statements)
version before: 0, after: 0
get(Book.class, "978-1", OPTIMISTIC_FORCE_INCREMENT)
right after get() (2 statements)
select b1_0.isbn,b1_0.price,b1_0.publisher_id,b1_0.title,b1_0.version,b1_0.views from book b1_0 where b1_0.isbn=? for update
update book set version=? where isbn=? and version=?
during commit (0 statements)
version before: 0, after: 1
get(Book.class, "978-1", PESSIMISTIC_WRITE)
right after get() (1 statement)
select b1_0.isbn,b1_0.price,b1_0.publisher_id,b1_0.title,b1_0.version,b1_0.views from book b1_0 where b1_0.isbn=? for update
during commit (0 statements)
version before: 1, after: 1
get(Book.class, "978-1", PESSIMISTIC_FORCE_INCREMENT)
right after get() (2 statements)
select b1_0.isbn,b1_0.price,b1_0.publisher_id,b1_0.title,b1_0.version,b1_0.views from book b1_0 where b1_0.isbn=? for update
update book set version=? where isbn=? and version=?
during commit (0 statements)
version before: 1, after: 2
=== HSQLDB ===
get(Book.class, "978-1", OPTIMISTIC)
FAILED: org.hibernate.HibernateException: Stateless optimistic locking requires transaction-long row protection; no strategy established for HSQLDialect:2:LOCKING
get(Book.class, "978-1", OPTIMISTIC_FORCE_INCREMENT)
FAILED: java.lang.NullPointerException: Cannot invoke "Object.getClass()" because "owner" is null
get(Book.class, "978-1", PESSIMISTIC_WRITE)
right after get() (1 statement)
select b1_0.isbn,b1_0.price,b1_0.publisher_id,b1_0.title,b1_0.version,b1_0.views from book b1_0 where b1_0.isbn=? for update
during commit (0 statements)
version before: 0, after: 0
get(Book.class, "978-1", PESSIMISTIC_FORCE_INCREMENT)
FAILED: java.lang.NullPointerException: Cannot invoke "Object.getClass()" because "owner" is null