@Override public TypeHelper getTypeHelper() { return getSessionFactory().getTypeHelper(); }
CriteriaImpl c = (CriteriaImpl)query; SessionImpl s = (SessionImpl)c.getSession(); SessionFactoryImplementor factory = (SessionFactoryImplementor)s.getSessionFactory(); String[] implementors = factory.getImplementors( c.getEntityOrClassName() ); CriteriaLoader loader = new CriteriaLoader((OuterJoinLoadable)factory.getEntityPersister(implementors[0]), factory, c, implementors[0], s.getEnabledFilters()); Field f = OuterJoinLoader.class.getDeclaredField("sql"); f.setAccessible(true); String sql = (String)f.get(loader);
primaryFromClauseTables.addAll( queryTranslator.getPrimaryFromClauseTables() ); for ( EntityPersister entityPersister : getSessionFactory().getMetamodel().entityPersisters().values() ) { if ( !entityPersister.isMutable() ) { List<Serializable> entityQuerySpaces = new ArrayList<>( ImmutableEntityUpdateQueryHandlingMode immutableEntityUpdateQueryHandlingMode = getSessionFactory() .getSessionFactoryOptions() .getImmutableEntityUpdateQueryHandlingMode();
private boolean isTransactionInProgress(boolean isMarkedRollbackConsideredActive) { if ( waitingForAutoClose ) { return getSessionFactory().isOpen() && getTransactionCoordinator().isTransactionActive( isMarkedRollbackConsideredActive ); } return !isClosed() && getTransactionCoordinator().isTransactionActive( isMarkedRollbackConsideredActive ); }
private void copyCollectionPersisterKeys(Attribute embeddedAttr, PluralAttribute listAttr, EntityManager em) { String [] keys = createOriginalAndExpectedKeys(embeddedAttr, listAttr); try { SessionImpl session = (SessionImpl) em.getDelegate(); SessionFactoryImplementor sessionFactory = session.getSessionFactory(); CollectionPersister persister = sessionFactory.getCollectionPersister(keys[0]); sessionFactory.getCollectionPersisters().put(keys[1], persister); } catch (Exception e) { throw new RuntimeException(e); } }
private void fireRefresh(RefreshEvent event) { try { if ( !getSessionFactory().getSessionFactoryOptions().isAllowRefreshDetachedEntity() ) { if ( event.getEntityName() != null ) { if ( !contains( event.getEntityName(), event.getObject() ) ) { if ( !getSessionFactory().getSessionFactoryOptions().isJpaBootstrap() ) { if ( e instanceof HibernateException ) { throw e;
throw new IllegalArgumentException( "Could not resolve entity-name [" + object + "]" ); getSessionFactory().getMetamodel().entityPersister( entityName );
getSessionFactory().getMetamodel().entityPersister( entityName );
public void closeWithoutOpenChecks() throws HibernateException { if ( TRACE_ENABLED ) { log.tracef( "Closing session [%s]", getSessionIdentifier() ); } // todo : we want this check if usage is JPA, but not native Hibernate usage if ( getSessionFactory().getSessionFactoryOptions().isJpaBootstrap() ) { // Original hibernate-entitymanager EM#close behavior checkSessionFactoryOpen(); checkOpenOrWaitingForAutoClose(); if ( discardOnClose || !isTransactionInProgress( false ) ) { super.close(); } else { //Otherwise, session auto-close will be enabled by shouldAutoCloseSession(). waitingForAutoClose = true; closed = true; } } else { super.close(); } if ( getFactory().getStatistics().isStatisticsEnabled() ) { getFactory().getStatistics().closeSession(); } }
private static SessionFactoryImplementor getSessionFactory(Session session) { return ((SessionImpl) session).getSessionFactory(); }
/** * {@inheritDoc} */ public TypeHelper getTypeHelper() { return getSessionFactory().getTypeHelper(); }
/** * {@inheritDoc} */ public TypeHelper getTypeHelper() { return getSessionFactory().getTypeHelper(); }
CriteriaImpl c = (CriteriaImpl) criteria; SessionImpl s = (SessionImpl) c.getSession(); SessionFactoryImplementor factory = (SessionFactoryImplementor) s.getSessionFactory(); String[] implementors = factory.getImplementors(c.getEntityOrClassName()); LoadQueryInfluencers lqis = new LoadQueryInfluencers(); CriteriaLoader loader = new CriteriaLoader((OuterJoinLoadable) factory.getEntityPersister(implementors[0]), factory, c, implementors[0], lqis); Field f = OuterJoinLoader.class.getDeclaredField("sql"); f.setAccessible(true); String sql = (String) f.get(loader);
Criteria criteria = session.createCriteria(User.class); CriteriaImpl c = (CriteriaImpl)criteria; SessionImpl s = (SessionImpl)c.getSession(); SessionFactoryImplementor factory = (SessionFactoryImplementor)s.getSessionFactory(); String[] implementors = factory.getImplementors( c.getEntityOrClassName() ); CriteriaLoader loader = new CriteriaLoader((OuterJoinLoadable)factory.getEntityPersister(implementors[0]), factory, c, implementors[0], s.getEnabledFilters()); Field f = OuterJoinLoader.class.getDeclaredField("sql"); f.setAccessible(true); String sql = (String)f.get(loader);
try { CriteriaImpl c = (CriteriaImpl) criteria; SessionImpl s = (SessionImpl) c.getSession(); SessionFactoryImplementor factory = (SessionFactoryImplementor) s.getSessionFactory(); String[] implementors = factory.getImplementors(c.getEntityOrClassName()); CriteriaLoader loader = new CriteriaLoader((OuterJoinLoadable) factory.getEntityPersister(implementors[0]), factory, c, implementors[0], s.getEnabledFilters()); Field f = OuterJoinLoader.class.getDeclaredField("sql"); f.setAccessible(true); String sql = (String) f.get(loader); } catch (Exception e) { }
/** * Checks if the specified named query is supported. * * @param namedQuery * the named query * @param session * Hibernate session * @return if the named query supported */ public static boolean isNamedQuerySupported(String namedQuery, Session session) { NamedQueryRepository namedQueryRepository = ((SessionImpl) session).getSessionFactory().getNamedQueryRepository(); NamedQueryDefinition namedQueryDef = namedQueryRepository.getNamedQueryDefinition(namedQuery); NamedSQLQueryDefinition namedSQLQueryDef = namedQueryRepository.getNamedSQLQueryDefinition(namedQuery); // NamedQueryDefinition namedQueryDef = ((SessionImpl) session).getSessionFactory().getNamedQuery(namedQuery); // NamedSQLQueryDefinition namedSQLQueryDef = // ((SessionImpl) session).getSessionFactory().getNamedSQLQuery(namedQuery); return namedQueryDef != null || namedSQLQueryDef != null; }
private boolean isTransactionInProgress(boolean isMarkedRollbackConsideredActive) { if ( waitingForAutoClose ) { return getSessionFactory().isOpen() && getTransactionCoordinator().isTransactionActive( isMarkedRollbackConsideredActive ); } return !isClosed() && getTransactionCoordinator().isTransactionActive( isMarkedRollbackConsideredActive ); }
@Override public QueryImplementor createQuery(CriteriaDelete criteriaDelete) { checkOpen(); try { return new QuerySqmImpl<>( "<criteria>", getSessionFactory().getQueryEngine().getSemanticQueryProducer().interpret( criteriaDelete ), null, this ); } catch ( RuntimeException e ) { throw exceptionConverter.convert( e ); } }
@Override public QueryImplementor createQuery(CriteriaUpdate criteriaUpdate) { checkOpen(); try { return new QuerySqmImpl<>( "<criteria>", getSessionFactory().getQueryEngine().getSemanticQueryProducer().interpret( criteriaUpdate ), null, this ); } catch ( RuntimeException e ) { throw exceptionConverter.convert( e ); } }
@Override @SuppressWarnings("unchecked") public <T> QueryImplementor<T> createQuery(CriteriaQuery<T> criteriaQuery) { checkOpen(); try { return new QuerySqmImpl<>( "<criteria>", getSessionFactory().getQueryEngine().getSemanticQueryProducer().interpret( criteriaQuery ), criteriaQuery.getResultType(), this ); } catch ( RuntimeException e ) { throw exceptionConverter.convert( e ); } }