I had the same issue with wls 12.2.1.2 and hibernate 4.3.7 with wls swallowing the root cause exception when HIB called setRollbackOnly(). With the system property mentionned by Emelyanov Alexandr, it is working fine. In class SynchronizationCallbackCoordinatorNonTrackingImpl the line after setRollback() is now called:
catch ( RuntimeException re ) {
setRollbackOnly(); //WLS throw an exception here swallowing current re. Next line is never called
throw exceptionMapper.mapManagedFlushFailure( "error during managed flush", re );//called with the system property weblogic.transaction.allowOverrideSetRollbackReason=true}