=== 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

