Class HibernateUtil

  • All Implemented Interfaces:
    org.pentaho.platform.api.engine.IPentahoSystemEntryPoint, org.pentaho.platform.api.engine.IPentahoSystemExitPoint

    public class HibernateUtil
    extends Object
    implements org.pentaho.platform.api.engine.IPentahoSystemEntryPoint, org.pentaho.platform.api.engine.IPentahoSystemExitPoint
    • Method Detail

      • setUseNewDatasourceService

        public void setUseNewDatasourceService​(boolean useNewService)
      • initialize

        protected static boolean initialize()
      • getSessionFactory

        public static org.hibernate.SessionFactory getSessionFactory()
        Returns the SessionFactory used for this static class.
        Returns:
        SessionFactory
      • getConfiguration

        public static org.hibernate.cfg.Configuration getConfiguration()
        Returns the original Hibernate configuration.
        Returns:
        Configuration
      • rebuildSessionFactory

        public static void rebuildSessionFactory()
                                          throws org.pentaho.platform.api.repository.RepositoryException
        Rebuild the SessionFactory with the static Configuration.
        Throws:
        org.pentaho.platform.api.repository.RepositoryException
      • rebuildSessionFactory

        public static void rebuildSessionFactory​(org.hibernate.cfg.Configuration cfg)
                                          throws org.pentaho.platform.api.repository.RepositoryException
        Rebuild the SessionFactory with the given Hibernate Configuration.
        Parameters:
        cfg -
        Throws:
        org.pentaho.platform.api.repository.RepositoryException
      • getSession

        public static org.hibernate.Session getSession()
                                                throws org.pentaho.platform.api.repository.RepositoryException
        Retrieves the current Session local to the thread.

        If no Session is open, opens a new Session for the running thread.

        Returns:
        Session
        Throws:
        org.pentaho.platform.api.repository.RepositoryException
      • flushSession

        public static void flushSession()
                                 throws org.pentaho.platform.api.repository.RepositoryException
        Throws:
        org.pentaho.platform.api.repository.RepositoryException
      • closeSession

        public static void closeSession()
                                 throws org.pentaho.platform.api.repository.RepositoryException
        Closes the Session local to the thread.
        Throws:
        org.pentaho.platform.api.repository.RepositoryException
      • beginTransaction

        public static void beginTransaction()
                                     throws org.pentaho.platform.api.repository.RepositoryException
        Start a new database transaction.
        Throws:
        org.pentaho.platform.api.repository.RepositoryException
      • commitTransaction

        public static void commitTransaction()
                                      throws org.pentaho.platform.api.repository.RepositoryException
        Commit the database transaction.
        Throws:
        org.pentaho.platform.api.repository.RepositoryException
      • rollbackTransaction

        public static void rollbackTransaction()
                                        throws org.pentaho.platform.api.repository.RepositoryException
        Commit the database transaction.
        Throws:
        org.pentaho.platform.api.repository.RepositoryException
      • disconnectSession

        public static org.hibernate.Session disconnectSession()
                                                       throws org.pentaho.platform.api.repository.RepositoryException
        Disconnect and return Session from current Thread.
        Returns:
        Session the disconnected Session
        Throws:
        org.pentaho.platform.api.repository.RepositoryException
      • registerInterceptor

        public static void registerInterceptor​(org.hibernate.Interceptor interceptor)
        Register a Hibernate interceptor with the current thread.

        Every Session opened is opened with this interceptor after registration. Has no effect if the current Session of the thread is already open, effective on next close()/getSession().

      • searchForTerm

        public static List searchForTerm​(org.pentaho.platform.api.repository.ISearchable searchable,
                                         String searchTerm,
                                         int searchType)
        Searches an ISearchable object for a search term. The search rules are as follows: If the searchType is ISearchable.SEARCH_TYPE_PHRASE, then the fields in the table are searched for the exact phrase given. If the searchType is ISearchable.SEARCH_TYPE_WORDS_AND or ..._OR, then the following happens: a- Each word in the searchTerm is extracted and put into a list of search terms. b- Each search term is surrounded by the SQL wildcard '%'. So each search term becomes %term%. c- A dynamic query is generated searching each of the columns for each search term d- The searchType is used to determine the connector between each search term. e- The AND will match only if all of the terms appear in a specific column - cross-column searching using ..._AND will NOT work. In other words, if your search term is "East Sales", and your search type is ..._AND, a row will be returned if one of the columns contains East and the same column contains Sales. A row will NOT be returned if one column only contains East, and another column only contains Sales. This type of functionality could be obtained using a view that concatenates all of the searchable columns together into one large column, but this would be costly and database-specific.
        Parameters:
        searchable - ISearchable to search
        searchTerm - Search Term - see above for rules
        searchType - One of: ISearchable.SEARCH_TYPE_PHRASE,ISearchable.SEARCH_TYPE_WORDS_AND, ISearchable.SEARCH_TYPE_WORDS_OR
        Returns:
        A list of objects from Hibernate that met the conditions specified.
      • clear

        public static void clear()
      • makePersistent

        public static void makePersistent​(Object obj)
                                   throws org.pentaho.platform.api.repository.RepositoryException
        Persists changes to the object. Object must be defined to hibernate.
        Parameters:
        obj - The object to make persistent
        Throws:
        org.pentaho.platform.api.repository.RepositoryException
      • makeTransient

        public static void makeTransient​(Object obj)
                                  throws org.pentaho.platform.api.repository.RepositoryException
        Deletes the object from Hibernate
        Parameters:
        obj - The object to make transient
        Throws:
        org.pentaho.platform.api.repository.RepositoryException
      • isOracleDialect

        public static boolean isOracleDialect()
        HACK This method is necessary to determine whether code should execute based on Oracle in use as the RDBMS repository for the platform. Helps us work around Oracle JDBC driver bugs.
        Returns:
        true if Hibernate dialect for oracle is in use.
      • evict

        public static void evict​(Object obj)
        Evicts the object from the Hibernate cache. Call this if you don't believe you'll need this object in the cache. This is also good to call if you're doing semi-mass updates.
        Parameters:
        obj -
      • systemEntryPoint

        public void systemEntryPoint()
        Specified by:
        systemEntryPoint in interface org.pentaho.platform.api.engine.IPentahoSystemEntryPoint
      • systemExitPoint

        public void systemExitPoint()
        Specified by:
        systemExitPoint in interface org.pentaho.platform.api.engine.IPentahoSystemExitPoint