@Override public void deleteAll(final Collection<?> entities) throws DataAccessException { executeWithNativeSession(session -> { checkWriteOperationAllowed(session); for (Object entity : entities) { session.delete(entity); } return null; }); }
@Override public Serializable save(final String entityName, final Object entity) throws DataAccessException { return nonNull(executeWithNativeSession(session -> { checkWriteOperationAllowed(session); return session.save(entityName, entity); })); }
@Override public Serializable save(final Object entity) throws DataAccessException { return nonNull(executeWithNativeSession(session -> { checkWriteOperationAllowed(session); return session.save(entity); })); }
@Override public void saveOrUpdate(final Object entity) throws DataAccessException { executeWithNativeSession(session -> { checkWriteOperationAllowed(session); session.saveOrUpdate(entity); return null; }); }
@Override public void replicate(final String entityName, final Object entity, final ReplicationMode replicationMode) throws DataAccessException { executeWithNativeSession(session -> { checkWriteOperationAllowed(session); session.replicate(entityName, entity, replicationMode); return null; }); }
@Override public void replicate(final Object entity, final ReplicationMode replicationMode) throws DataAccessException { executeWithNativeSession(session -> { checkWriteOperationAllowed(session); session.replicate(entity, replicationMode); return null; }); }
@Override public void persist(final Object entity) throws DataAccessException { executeWithNativeSession(session -> { checkWriteOperationAllowed(session); session.persist(entity); return null; }); }
@Override public void persist(final String entityName, final Object entity) throws DataAccessException { executeWithNativeSession(session -> { checkWriteOperationAllowed(session); session.persist(entityName, entity); return null; }); }
@Override public void saveOrUpdate(final String entityName, final Object entity) throws DataAccessException { executeWithNativeSession(session -> { checkWriteOperationAllowed(session); session.saveOrUpdate(entityName, entity); return null; }); }
@Override public void delete(final Object entity, @Nullable final LockMode lockMode) throws DataAccessException { executeWithNativeSession(session -> { checkWriteOperationAllowed(session); if (lockMode != null) { session.buildLockRequest(new LockOptions(lockMode)).lock(entity); } session.delete(entity); return null; }); }
@Override public void deleteAll(final Collection<?> entities) throws DataAccessException { executeWithNativeSession(session -> { checkWriteOperationAllowed(session); for (Object entity : entities) { session.delete(entity); } return null; }); }
@Override public void delete(final String entityName, final Object entity, @Nullable final LockMode lockMode) throws DataAccessException { executeWithNativeSession(session -> { checkWriteOperationAllowed(session); if (lockMode != null) { session.buildLockRequest(new LockOptions(lockMode)).lock(entityName, entity); } session.delete(entityName, entity); return null; }); }
@Override @SuppressWarnings("unchecked") public <T> T merge(final T entity) throws DataAccessException { return nonNull(executeWithNativeSession(session -> { checkWriteOperationAllowed(session); return (T) session.merge(entity); })); }
@Override @SuppressWarnings("unchecked") public <T> T merge(final String entityName, final T entity) throws DataAccessException { return nonNull(executeWithNativeSession(session -> { checkWriteOperationAllowed(session); return (T) session.merge(entityName, entity); })); }
@Override public void update(final Object entity, @Nullable final LockMode lockMode) throws DataAccessException { executeWithNativeSession(session -> { checkWriteOperationAllowed(session); session.update(entity); if (lockMode != null) { session.buildLockRequest(new LockOptions(lockMode)).lock(entity); } return null; }); }
@Override public void update(final String entityName, final Object entity, @Nullable final LockMode lockMode) throws DataAccessException { executeWithNativeSession(session -> { checkWriteOperationAllowed(session); session.update(entityName, entity); if (lockMode != null) { session.buildLockRequest(new LockOptions(lockMode)).lock(entityName, entity); } return null; }); }
@Override public void replicate(final String entityName, final Object entity, final ReplicationMode replicationMode) throws DataAccessException { executeWithNativeSession(session -> { checkWriteOperationAllowed(session); session.replicate(entityName, entity, replicationMode); return null; }); }
@Override public void delete(final Object entity, @Nullable final LockMode lockMode) throws DataAccessException { executeWithNativeSession(session -> { checkWriteOperationAllowed(session); if (lockMode != null) { session.buildLockRequest(new LockOptions(lockMode)).lock(entity); } session.delete(entity); return null; }); }
@Override @SuppressWarnings("unchecked") public <T> T merge(final T entity) throws DataAccessException { return nonNull(executeWithNativeSession(session -> { checkWriteOperationAllowed(session); return (T) session.merge(entity); })); }
@Override @SuppressWarnings("unchecked") public <T> T merge(final String entityName, final T entity) throws DataAccessException { return nonNull(executeWithNativeSession(session -> { checkWriteOperationAllowed(session); return (T) session.merge(entityName, entity); })); }