Class HibernateSystemEventDao

  • All Implemented Interfaces:
    org.ikasan.spec.systemevent.SystemEventDao<org.ikasan.spec.systemevent.SystemEvent>, org.springframework.beans.factory.InitializingBean

    public class HibernateSystemEventDao
    extends org.springframework.orm.hibernate5.support.HibernateDaoSupport
    implements org.ikasan.spec.systemevent.SystemEventDao<org.ikasan.spec.systemevent.SystemEvent>
    Hibernate implementation of SystemFlowEventDao

    Note that can be configured to housekeep either simply, or in batches.

    Author:
    Ikasan Development Team
    • Constructor Summary

      Constructors 
      Constructor Description
      HibernateSystemEventDao()
      Constructor
      HibernateSystemEventDao​(boolean batchHousekeepDelete, java.lang.Integer housekeepingBatchSize, java.lang.Integer transactionBatchSize)
      Constructor
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void deleteExpired()  
      org.ikasan.spec.search.PagedSearchResult<org.ikasan.spec.systemevent.SystemEvent> find​(int pageNo, int pageSize, java.lang.String orderBy, boolean orderAscending, java.lang.String subject, java.lang.String action, java.util.Date timestampFrom, java.util.Date timestampTo, java.lang.String actor)  
      java.util.List<org.ikasan.spec.systemevent.SystemEvent> getHarvestableRecords​(int harvestingBatchSize)  
      java.lang.Integer getHousekeepingBatchSize()  
      java.lang.Boolean getOrderHarvestQuery()  
      boolean housekeepablesExist()
      Checks if there are housekeepable items in existance, ie expired SystemFlowEvents
      boolean isBatchHousekeepDelete()  
      java.util.List<org.ikasan.spec.systemevent.SystemEvent> list​(java.util.List<java.lang.String> subjects, java.lang.String actor, java.util.Date timestampFrom, java.util.Date timestampTo)  
      void save​(org.ikasan.spec.systemevent.SystemEvent systemEvent)  
      void setBatchHousekeepDelete​(boolean batchHousekeepDelete)  
      void setHousekeepingBatchSize​(java.lang.Integer housekeepingBatchSize)  
      void setHousekeepQuery​(java.lang.String housekeepQuery)  
      void setOrderHarvestQuery​(java.lang.Boolean orderHarvestQuery)  
      void setTransactionBatchSize​(java.lang.Integer transactionBatchSize)  
      void updateAsHarvested​(java.util.List<org.ikasan.spec.systemevent.SystemEvent> events)  
      • Methods inherited from class org.springframework.orm.hibernate5.support.HibernateDaoSupport

        checkDaoConfig, createHibernateTemplate, currentSession, getHibernateTemplate, getSessionFactory, setHibernateTemplate, setSessionFactory
      • Methods inherited from class org.springframework.dao.support.DaoSupport

        afterPropertiesSet, initDao
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • HibernateSystemEventDao

        public HibernateSystemEventDao​(boolean batchHousekeepDelete,
                                       java.lang.Integer housekeepingBatchSize,
                                       java.lang.Integer transactionBatchSize)
        Constructor
        Parameters:
        batchHousekeepDelete - - pass true if you want to use batch deleting
        housekeepingBatchSize - - batch size, only respected if set to use batching
      • HibernateSystemEventDao

        public HibernateSystemEventDao()
        Constructor
    • Method Detail

      • save

        public void save​(org.ikasan.spec.systemevent.SystemEvent systemEvent)
        Specified by:
        save in interface org.ikasan.spec.systemevent.SystemEventDao<org.ikasan.spec.systemevent.SystemEvent>
      • find

        public org.ikasan.spec.search.PagedSearchResult<org.ikasan.spec.systemevent.SystemEvent> find​(int pageNo,
                                                                                                      int pageSize,
                                                                                                      java.lang.String orderBy,
                                                                                                      boolean orderAscending,
                                                                                                      java.lang.String subject,
                                                                                                      java.lang.String action,
                                                                                                      java.util.Date timestampFrom,
                                                                                                      java.util.Date timestampTo,
                                                                                                      java.lang.String actor)
        Specified by:
        find in interface org.ikasan.spec.systemevent.SystemEventDao<org.ikasan.spec.systemevent.SystemEvent>
      • list

        public java.util.List<org.ikasan.spec.systemevent.SystemEvent> list​(java.util.List<java.lang.String> subjects,
                                                                            java.lang.String actor,
                                                                            java.util.Date timestampFrom,
                                                                            java.util.Date timestampTo)
        Specified by:
        list in interface org.ikasan.spec.systemevent.SystemEventDao<org.ikasan.spec.systemevent.SystemEvent>
      • deleteExpired

        public void deleteExpired()
        Specified by:
        deleteExpired in interface org.ikasan.spec.systemevent.SystemEventDao<org.ikasan.spec.systemevent.SystemEvent>
      • housekeepablesExist

        public boolean housekeepablesExist()
        Checks if there are housekeepable items in existance, ie expired SystemFlowEvents
        Specified by:
        housekeepablesExist in interface org.ikasan.spec.systemevent.SystemEventDao<org.ikasan.spec.systemevent.SystemEvent>
        Returns:
        true if there is at least 1 expired SystemFlowEvent
      • isBatchHousekeepDelete

        public boolean isBatchHousekeepDelete()
        Specified by:
        isBatchHousekeepDelete in interface org.ikasan.spec.systemevent.SystemEventDao<org.ikasan.spec.systemevent.SystemEvent>
      • setBatchHousekeepDelete

        public void setBatchHousekeepDelete​(boolean batchHousekeepDelete)
        Specified by:
        setBatchHousekeepDelete in interface org.ikasan.spec.systemevent.SystemEventDao<org.ikasan.spec.systemevent.SystemEvent>
      • getHousekeepingBatchSize

        public java.lang.Integer getHousekeepingBatchSize()
        Specified by:
        getHousekeepingBatchSize in interface org.ikasan.spec.systemevent.SystemEventDao<org.ikasan.spec.systemevent.SystemEvent>
      • setHousekeepingBatchSize

        public void setHousekeepingBatchSize​(java.lang.Integer housekeepingBatchSize)
        Specified by:
        setHousekeepingBatchSize in interface org.ikasan.spec.systemevent.SystemEventDao<org.ikasan.spec.systemevent.SystemEvent>
      • setTransactionBatchSize

        public void setTransactionBatchSize​(java.lang.Integer transactionBatchSize)
        Specified by:
        setTransactionBatchSize in interface org.ikasan.spec.systemevent.SystemEventDao<org.ikasan.spec.systemevent.SystemEvent>
      • setHousekeepQuery

        public void setHousekeepQuery​(java.lang.String housekeepQuery)
        Specified by:
        setHousekeepQuery in interface org.ikasan.spec.systemevent.SystemEventDao<org.ikasan.spec.systemevent.SystemEvent>
      • getHarvestableRecords

        public java.util.List<org.ikasan.spec.systemevent.SystemEvent> getHarvestableRecords​(int harvestingBatchSize)
        Specified by:
        getHarvestableRecords in interface org.ikasan.spec.systemevent.SystemEventDao<org.ikasan.spec.systemevent.SystemEvent>
      • updateAsHarvested

        public void updateAsHarvested​(java.util.List<org.ikasan.spec.systemevent.SystemEvent> events)
        Specified by:
        updateAsHarvested in interface org.ikasan.spec.systemevent.SystemEventDao<org.ikasan.spec.systemevent.SystemEvent>
      • getOrderHarvestQuery

        public java.lang.Boolean getOrderHarvestQuery()
        Specified by:
        getOrderHarvestQuery in interface org.ikasan.spec.systemevent.SystemEventDao<org.ikasan.spec.systemevent.SystemEvent>
      • setOrderHarvestQuery

        public void setOrderHarvestQuery​(java.lang.Boolean orderHarvestQuery)
        Specified by:
        setOrderHarvestQuery in interface org.ikasan.spec.systemevent.SystemEventDao<org.ikasan.spec.systemevent.SystemEvent>