@Override public StoredProcedureQuery createStoredProcedureQuery(String procedureName) { try { return createStoredProcedureCall( procedureName ); } catch ( RuntimeException e ) { throw exceptionConverter.convert( e ); } }
@Override public StoredProcedureQuery createStoredProcedureQuery(String procedureName, Class... resultClasses) { try { return createStoredProcedureCall( procedureName, resultClasses ); } catch ( RuntimeException e ) { throw exceptionConverter.convert( e ); } }
@Override public <T> T getReference(Class<T> entityClass, Object primaryKey) { checkOpen(); try { return byId( entityClass ).getReference( (Serializable) primaryKey ); } catch ( MappingException | TypeMismatchException | ClassCastException e ) { throw exceptionConverter.convert( new IllegalArgumentException( e.getMessage(), e ) ); } catch ( RuntimeException e ) { throw exceptionConverter.convert( e ); } }
@Override public RuntimeException mapManagedFlushFailure(String message, RuntimeException failure, SessionImplementor session) { if ( HibernateException.class.isInstance( failure ) ) { throw session.getExceptionConverter().convert( failure ); } if ( PersistenceException.class.isInstance( failure ) ) { throw failure; } throw new PersistenceException( message, failure ); } }
@Override public void remove(Object entity) { checkOpen(); try { delete( entity ); } catch (MappingException e) { throw exceptionConverter.convert( new IllegalArgumentException( e.getMessage(), e ) ); } catch ( RuntimeException e ) { //including HibernateException throw exceptionConverter.convert( e ); } }
@Override public void detach(Object entity) { checkOpen(); try { evict( entity ); } catch (RuntimeException e) { throw exceptionConverter.convert( e ); } }
@Override public StoredProcedureQuery createStoredProcedureQuery(String procedureName, String... resultSetMappings) { checkOpen(); try { try { return createStoredProcedureCall( procedureName, resultSetMappings ); } catch (UnknownSqlResultSetMappingException unknownResultSetMapping) { throw new IllegalArgumentException( unknownResultSetMapping.getMessage(), unknownResultSetMapping ); } } catch ( RuntimeException e ) { throw exceptionConverter.convert( e ); } }
@Override public <T> T execute(final LobCreationContext.Callback<T> callback) { return getJdbcCoordinator().coordinateWork( (workExecutor, connection) -> { try { return callback.executeOnConnection( connection ); } catch (SQLException e) { throw exceptionConverter.convert( e, "Error creating contextual LOB : " + e.getMessage() ); } } ); }
@Override public QueryImplementor createQuery(CriteriaUpdate criteriaUpdate) { checkOpen(); try { return criteriaCompiler().compile( (CompilableCriteria) criteriaUpdate ); } catch ( RuntimeException e ) { throw exceptionConverter.convert( e ); } }
@Override public boolean isOpen() { checkSessionFactoryOpen(); checkTransactionSynchStatus(); try { return !isClosed(); } catch (HibernateException he) { throw exceptionConverter.convert( he ); } }
@Override @SuppressWarnings("unchecked") public <T> QueryImplementor<T> createQuery(CriteriaQuery<T> criteriaQuery) { checkOpen(); try { return (QueryImplementor<T>) criteriaCompiler().compile( (CompilableCriteria) criteriaQuery ); } catch ( RuntimeException e ) { throw exceptionConverter.convert( e ); } }
@Override public QueryImplementor createQuery(CriteriaDelete criteriaDelete) { checkOpen(); try { return criteriaCompiler().compile( (CompilableCriteria) criteriaDelete ); } catch ( RuntimeException e ) { throw exceptionConverter.convert( e ); } }
@Override public void clear() { checkOpen(); // Do not call checkTransactionSynchStatus() here -- if a delayed // afterCompletion exists, it can cause an infinite loop. pulseTransactionCoordinator(); try { internalClear(); } catch (RuntimeException e) { throw exceptionConverter.convert( e ); } }
@Override public StoredProcedureQuery createNamedStoredProcedureQuery(String name) { checkOpen(); try { final ProcedureCallMemento memento = getFactory().getNamedQueryRepository().getNamedProcedureCallMemento( name ); if ( memento == null ) { throw new IllegalArgumentException( "No @NamedStoredProcedureQuery was found with that name : " + name ); } return memento.makeProcedureCall( this ); } catch ( RuntimeException e ) { throw exceptionConverter.convert( e ); } }
@Override public LockModeType getLockMode(Object entity) { checkOpen(); if ( !isTransactionInProgress() ) { throw new TransactionRequiredException( "Call to EntityManager#getLockMode should occur within transaction according to spec" ); } if ( !contains( entity ) ) { throw exceptionConverter.convert( new IllegalArgumentException( "entity not in the persistence context" ) ); } return LockModeTypeHelper.getLockModeType( getCurrentLockMode( entity ) ); }
@Override public NativeQueryImplementor getNamedNativeQuery(String name) { checkOpen(); checkTransactionSynchStatus(); delayedAfterCompletion(); final NamedSQLQueryDefinition nativeQueryDefinition = factory.getNamedQueryRepository().getNamedSQLQueryDefinition( name ); if ( nativeQueryDefinition != null ) { return createNativeQuery( nativeQueryDefinition, true ); } throw exceptionConverter.convert( new IllegalArgumentException( "No query defined for that name [" + name + "]" ) ); }
@Override public QueryParameter<?> getParameter(String name) { getProducer().checkOpen( false ); try { return getParameterMetadata().getQueryParameter( name ); } catch ( HibernateException e ) { throw getExceptionConverter().convert( e ); } }
@Override public NativeQueryImplementor createNativeQuery(String sqlString, String resultSetMapping) { checkOpen(); checkTransactionSynchStatus(); delayedAfterCompletion(); try { NativeQueryImplementor query = createNativeQuery( sqlString ); query.setResultSetMapping( resultSetMapping ); return query; } catch ( RuntimeException he ) { throw exceptionConverter.convert( he ); } }
@Override public NativeQueryImplementor createNativeQuery(String sqlString, Class resultClass) { checkOpen(); checkTransactionSynchStatus(); delayedAfterCompletion(); try { NativeQueryImplementor query = createNativeQuery( sqlString ); handleNativeQueryResult(query, resultClass); return query; } catch ( RuntimeException he ) { throw exceptionConverter.convert( he ); } }
private void fireRefresh(Map refreshedAlready, RefreshEvent event) { try { checkTransactionSynchStatus(); for ( RefreshEventListener listener : listeners( EventType.REFRESH ) ) { listener.onRefresh( event, refreshedAlready ); } delayedAfterCompletion(); } catch (RuntimeException e) { throw exceptionConverter.convert( e ); } finally { delayedAfterCompletion(); } }