@Override public <V> V withManualFlush(Supplier<V> supplier) { final FlushMode flushMode = sessionFactory.getCurrentSession().getFlushMode(); try { sessionFactory.getCurrentSession().setFlushMode(FlushMode.MANUAL); return supplier.get(); } finally { sessionFactory.getCurrentSession().setFlushMode(flushMode); } }
@Override public void validate(Object obj, Errors errors, boolean cascade) { final Session session = sessionFactory.getCurrentSession(); FlushMode previousMode = null; try { if (session != null) { previousMode = session.getFlushMode(); session.setFlushMode(FlushMode.MANUAL); } super.validate(obj, errors, cascade); } finally { if (session != null && previousMode != null && !errors.hasErrors()) { session.setFlushMode(previousMode); } } }