Package org.ikasan.systemevent.dao
Class HibernateSystemEventDao
- java.lang.Object
-
- org.springframework.dao.support.DaoSupport
-
- org.springframework.orm.hibernate5.support.HibernateDaoSupport
-
- org.ikasan.systemevent.dao.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 ofSystemFlowEventDaoNote that can be configured to housekeep either simply, or in batches.
- Author:
- Ikasan Development Team
-
-
Field Summary
Fields Modifier and Type Field Description static java.lang.StringEVENT_IDSstatic java.lang.StringEXPIRYstatic java.lang.StringNOWstatic java.lang.StringSYSTEM_EVENTS_DELETE_QUERYstatic java.lang.StringSYSTEM_EVENTS_TO_DELETE_QUERYstatic java.lang.StringUPDATE_HARVESTED_QUERY
-
Constructor Summary
Constructors Constructor Description HibernateSystemEventDao()ConstructorHibernateSystemEventDao(boolean batchHousekeepDelete, java.lang.Integer housekeepingBatchSize, java.lang.Integer transactionBatchSize)Constructor
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voiddeleteExpired()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.IntegergetHousekeepingBatchSize()java.lang.BooleangetOrderHarvestQuery()booleanhousekeepablesExist()Checks if there are housekeepable items in existance, ie expired SystemFlowEventsbooleanisBatchHousekeepDelete()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)voidsave(org.ikasan.spec.systemevent.SystemEvent systemEvent)voidsetBatchHousekeepDelete(boolean batchHousekeepDelete)voidsetHousekeepingBatchSize(java.lang.Integer housekeepingBatchSize)voidsetHousekeepQuery(java.lang.String housekeepQuery)voidsetOrderHarvestQuery(java.lang.Boolean orderHarvestQuery)voidsetTransactionBatchSize(java.lang.Integer transactionBatchSize)voidupdateAsHarvested(java.util.List<org.ikasan.spec.systemevent.SystemEvent> events)
-
-
-
Field Detail
-
EXPIRY
public static final java.lang.String EXPIRY
- See Also:
- Constant Field Values
-
EVENT_IDS
public static final java.lang.String EVENT_IDS
- See Also:
- Constant Field Values
-
NOW
public static final java.lang.String NOW
- See Also:
- Constant Field Values
-
SYSTEM_EVENTS_TO_DELETE_QUERY
public static final java.lang.String SYSTEM_EVENTS_TO_DELETE_QUERY
- See Also:
- Constant Field Values
-
SYSTEM_EVENTS_DELETE_QUERY
public static final java.lang.String SYSTEM_EVENTS_DELETE_QUERY
- See Also:
- Constant Field Values
-
UPDATE_HARVESTED_QUERY
public static final java.lang.String UPDATE_HARVESTED_QUERY
- See Also:
- Constant Field Values
-
-
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 deletinghousekeepingBatchSize- - 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:
savein interfaceorg.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:
findin interfaceorg.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:
listin interfaceorg.ikasan.spec.systemevent.SystemEventDao<org.ikasan.spec.systemevent.SystemEvent>
-
deleteExpired
public void deleteExpired()
- Specified by:
deleteExpiredin interfaceorg.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:
housekeepablesExistin interfaceorg.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:
isBatchHousekeepDeletein interfaceorg.ikasan.spec.systemevent.SystemEventDao<org.ikasan.spec.systemevent.SystemEvent>
-
setBatchHousekeepDelete
public void setBatchHousekeepDelete(boolean batchHousekeepDelete)
- Specified by:
setBatchHousekeepDeletein interfaceorg.ikasan.spec.systemevent.SystemEventDao<org.ikasan.spec.systemevent.SystemEvent>
-
getHousekeepingBatchSize
public java.lang.Integer getHousekeepingBatchSize()
- Specified by:
getHousekeepingBatchSizein interfaceorg.ikasan.spec.systemevent.SystemEventDao<org.ikasan.spec.systemevent.SystemEvent>
-
setHousekeepingBatchSize
public void setHousekeepingBatchSize(java.lang.Integer housekeepingBatchSize)
- Specified by:
setHousekeepingBatchSizein interfaceorg.ikasan.spec.systemevent.SystemEventDao<org.ikasan.spec.systemevent.SystemEvent>
-
setTransactionBatchSize
public void setTransactionBatchSize(java.lang.Integer transactionBatchSize)
- Specified by:
setTransactionBatchSizein interfaceorg.ikasan.spec.systemevent.SystemEventDao<org.ikasan.spec.systemevent.SystemEvent>
-
setHousekeepQuery
public void setHousekeepQuery(java.lang.String housekeepQuery)
- Specified by:
setHousekeepQueryin interfaceorg.ikasan.spec.systemevent.SystemEventDao<org.ikasan.spec.systemevent.SystemEvent>
-
getHarvestableRecords
public java.util.List<org.ikasan.spec.systemevent.SystemEvent> getHarvestableRecords(int harvestingBatchSize)
- Specified by:
getHarvestableRecordsin interfaceorg.ikasan.spec.systemevent.SystemEventDao<org.ikasan.spec.systemevent.SystemEvent>
-
updateAsHarvested
public void updateAsHarvested(java.util.List<org.ikasan.spec.systemevent.SystemEvent> events)
- Specified by:
updateAsHarvestedin interfaceorg.ikasan.spec.systemevent.SystemEventDao<org.ikasan.spec.systemevent.SystemEvent>
-
getOrderHarvestQuery
public java.lang.Boolean getOrderHarvestQuery()
- Specified by:
getOrderHarvestQueryin interfaceorg.ikasan.spec.systemevent.SystemEventDao<org.ikasan.spec.systemevent.SystemEvent>
-
setOrderHarvestQuery
public void setOrderHarvestQuery(java.lang.Boolean orderHarvestQuery)
- Specified by:
setOrderHarvestQueryin interfaceorg.ikasan.spec.systemevent.SystemEventDao<org.ikasan.spec.systemevent.SystemEvent>
-
-