I had similar problems, however I only tested the game version 2.3.7:
I noticed that there are two different libraries containing the Transactional annotation: @com.avaje.ebean.annotation.Transactionaland @play.db.ebean.Transactional.
Apparently, each of them works only in certain types of classes, and when used incorrectly, rollback is not performed. This is what I learned while testing:
@com.avaje.ebean.annotation.Transactional:
, , .. @javax.persistence.Entity. , , ebean, ,- ebean , . try/finally. .
@play.db.ebean.Transactional: , .. play.mvc.Controller. , , .