Class AbstractHibernateAttachmentDao
- java.lang.Object
-
- org.springframework.dao.support.DaoSupport
-
- com.atlassian.confluence.core.persistence.hibernate.HibernateObjectDao<T>
-
- com.atlassian.confluence.core.persistence.hibernate.VersionedHibernateObjectDao<Attachment>
-
- com.atlassian.confluence.pages.persistence.dao.hibernate.AbstractHibernateAttachmentDao
-
- All Implemented Interfaces:
ObjectDao
,VersionedObjectDao<Attachment>
,AttachmentDaoInternal
,ObjectDaoInternal<Attachment>
,VersionedObjectDaoInternal<Attachment>
,AttachmentDao
,FlushableCachingDao
,org.springframework.beans.factory.InitializingBean
- Direct Known Subclasses:
NonTransactionalHibernateAttachmentDao
,TransactionalHibernateAttachmentDao
public abstract class AbstractHibernateAttachmentDao extends VersionedHibernateObjectDao<Attachment> implements AttachmentDaoInternal, FlushableCachingDao
Abstract class that defines the basic methods necessary for saving Attachments to a database.The location of the storage of attachment data is dependent on the AttachmentDataDao set for this class. In some cases, since the removal of attachments is destructive, different implementations may wish to perform the removal of data in a different order. Subclasses will have to implement the #removeDataForAttachment(Attachment attachment) method.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description class
AbstractHibernateAttachmentDao.IntraHibernateAttachmentCopier
This attachment copier will copy attachment streams from the current instance of AbstractHibernateAttachmentDao to another.class
AbstractHibernateAttachmentDao.IntraHibernateAttachmentMigrator
Deprecated, for removal: This API element is subject to removal in a future version.since 8.8, no replacement-
Nested classes/interfaces inherited from class com.atlassian.confluence.core.persistence.hibernate.HibernateObjectDao
HibernateObjectDao.Cacheability
-
Nested classes/interfaces inherited from interface com.atlassian.confluence.pages.persistence.dao.AttachmentDao
AttachmentDao.AttachmentCopier, AttachmentDao.AttachmentMigrator
-
-
Field Summary
Fields Modifier and Type Field Description protected AttachmentDataDao
dataDao
-
Fields inherited from class com.atlassian.confluence.core.persistence.hibernate.VersionedHibernateObjectDao
cacheFactory, confluenceUserDao
-
-
Constructor Summary
Constructors Constructor Description AbstractHibernateAttachmentDao()
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description void
afterMigrationFrom()
This implementation removes all Attachments and passes the migration tasks onto the AttachmentDataDaoint
countLatestVersionsOfAttachments(ContentEntityObject content)
int
countLatestVersionsOfAttachmentsOnPageSince(ContentEntityObject content, Date since)
int
countLatestVersionsOfAttachmentsWithAnyStatus(ContentEntityObject content)
List<Attachment>
findAllVersions(Attachment attachment)
List<Attachment>
findAllVersions(Long id)
List<Long>
findLatestVersionIds()
List<Long>
findLatestVersionIds(List<Space> spacesToInclude)
Same asfindLatestVersionIdsIterator()
but only gets the ids matching the list of spaces requested.Iterator<Long>
findLatestVersionIdsIterator()
Iterator<Long>
findLatestVersionIdsIterator(List<Space> spacesToInclude)
Same asfindLatestVersionIdsIterator()
but only gets the ids matching the list of spaces requested.void
flush()
This implementation flushes the Hibernate session.Attachment
getAttachment(ContentEntityObject content, String fileName, int version)
Return the attachment on the specified content with the given filename and version.InputStream
getAttachmentData(Attachment attachment)
Retrieves the InputStream representing the data for attachmentInputStream
getAttachmentData(Attachment attachment, Optional<RangeRequest> range)
Retrieves the InputStream representing the specified range of data for attachmentOptional<AttachmentStatisticsDTO>
getAttachmentStatistics()
Fetches statistics about attachmentsAttachmentDataStorageType
getBackingStorageType()
Returns the backing storage type.Attachment
getById(long id)
Returns the attachment with the given persistent ID.List<Attachment>
getByIds(List<Long> ids)
Returns a list of attachments matching the given list of IDs.AttachmentDao.AttachmentCopier
getCopier(AttachmentDao destinationDao)
Get a copier object to copy attachments between data storesAttachmentDataDao
getDataDao()
static AttachmentDao
getInstance(AttachmentDataDao attachmentDataDao)
Returns the correct instance of AttachmentDao for the AttachmentDataDao that is given.List<Attachment>
getLastAddedVersionsOf(Attachment attachment)
Retrieves all the last added versions for each user who has added a version of the attachment That is, if a user has added multiple versions, only the latest added version will be added to the list returned.Attachment
getLatestAttachment(ContentEntityObject content, String fileName)
Return the latest version of the attachment on the specified content with the given filename.List<Attachment>
getLatestVersionsOfAttachments(ContentEntityObject content)
Retrieves the latest versions of all attachments to ceoList
getLatestVersionsOfAttachments(ContentEntityObject ceo, LimitedRequest request)
List<Attachment>
getLatestVersionsOfAttachmentsForMultipleCeos(Iterable<? extends ContentEntityObject> contentEntityObjects)
Retrieves the latest versions of all attachments for all CEOs providedList<Attachment>
getLatestVersionsOfAttachmentsWithAnyStatus(ContentEntityObject content)
Retrieves the latest versions of all attachments to ceo (including trashed)List<Attachment>
getLatestVersionsOfAttachmentsWithAnyStatusForContainers(Iterable<? extends ContentEntityObject> contentEntityObjects)
Retrieves the latest versions of all attachments for all CEOs provided (including trashed)AttachmentDao.AttachmentMigrator
getMigrator(AttachmentDao destinationDao)
Get a migrator object to migrate attachments between attachment datastores.Class
getPersistentClass()
Gets the type ofEntityObject
this Dao works with.Map<Long,Long>
getRemappedAttachmentIds()
Gets a list of remapped attachment IDs.boolean
isAttachmentPresent(Attachment attachment)
Check that an attachment existsvoid
moveAttachment(Attachment latestVersion, Attachment oldAttachment, ContentEntityObject newContent)
Moves an Attachment to a new file name or content objectprotected void
overwriteMetaData(Attachment sourceAttachment, Attachment targetAttachment)
Overwrites attachment meta data.void
prepareForMigrationTo()
This implementation removes the contents of the table and passes the migration tasks onto the AttachmentDataDaoprotected List<Attachment>
removeAllAttachmentVersions(Attachment latestVersion, ContentEntityObject content)
protected void
removeAttachment(Attachment attachment, ContentEntityObject content)
Severs the connection between attachment and content, and removes the attachment from the databasevoid
removeAttachmentVersionFromServer(Attachment attachmentVersionToBeRemoved)
Removes an attachment versionprotected abstract void
removeAttachmentVersionFromServer(Attachment attachmentVersionToBeRemoved, @Nullable Attachment previousAttachmentVersion)
protected void
removeMetaData(Attachment attachment)
Removes attachment meta data.void
replaceAttachmentData(Attachment attachment, InputStream attachmentData)
Sets the attachment data for attachmentvoid
saveNewAttachment(Attachment attachment, InputStream attachmentData)
Saves a new attachmentvoid
saveNewAttachmentVersion(Attachment attachment, Attachment previousVersion, InputStream attachmentData)
This implementation saves the Attachment and its previous version to the VersionedHibernateObjectDao.void
updateAttachment(Attachment attachment)
Update an existing attachment without creating a new version-
Methods inherited from class com.atlassian.confluence.core.persistence.hibernate.VersionedHibernateObjectDao
findAllSorted, findLatestVersionsCount, findLatestVersionsCount, findLatestVersionsIterator, findLatestVersionsIterator, findNamedQueryStringParams, findNamedQueryStringParams, save, saveEntity, setCacheFactory, setConfluenceUserDao, updateEntityModificationData, updateModificationData
-
Methods inherited from class com.atlassian.confluence.core.persistence.hibernate.HibernateObjectDao
applyTransactionTimeout, applyTransactionTimeout, checkDaoConfig, createHibernateTemplate, findAll, findAllSorted, findByClassIds, findByClassIdsFiltered, findNamedQuery, findNamedQuery, findNamedQuery, findNamedQueryStringParam, findNamedQueryStringParam, findNamedQueryStringParam, findNamedQueryStringParams, findNamedQueryStringParams, findNamedQueryStringParams, findNamedQueryStringParams, findNamedQueryStringParams, findNamedQueryStringParams, findNamedQueryStringParams, findNamedQueryStringParams, findNamedQueryStringParams, findNamedQueryStringParams, findNamedQueryStringParams, findSingleObject, getByClassId, getCountResult, getHibernateTemplate, getSessionFactory, index, indexEntity, refresh, refreshEntity, reIndex, reIndexEntity, remove, removeEntity, replicate, replicateEntity, save, saveEntity, saveRaw, saveRawEntity, setEventPublisher, setHibernateTemplate, setIndexer, setSessionFactory, unIndex, unIndexEntity, uniqueResult
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface com.atlassian.confluence.pages.persistence.dao.AttachmentDao
findAll, findLatestVersionsIterator, getLatestVersionsOfAttachments, removeAttachmentFromServer
-
Methods inherited from interface com.atlassian.confluence.internal.pages.persistence.AttachmentDaoInternal
getFilteredLatestVersionsOfAttachments, removeAllVersionsFromServer
-
Methods inherited from interface com.atlassian.confluence.internal.persistence.ObjectDaoInternal
findAll, findAllSorted, findByClassIds, findByClassIdsFiltered, refresh, refreshEntity, remove, removeEntity, replicate, replicateEntity, save, saveEntity, saveRaw, saveRawEntity
-
-
-
-
Field Detail
-
dataDao
protected AttachmentDataDao dataDao
-
-
Method Detail
-
getDataDao
public AttachmentDataDao getDataDao()
- Specified by:
getDataDao
in interfaceAttachmentDao
-
getInstance
public static AttachmentDao getInstance(AttachmentDataDao attachmentDataDao)
Returns the correct instance of AttachmentDao for the AttachmentDataDao that is given.- Parameters:
attachmentDataDao
- the AttachmentDataDao that should be used- Returns:
- a matching AttachmentDao instance
- Throws:
IllegalArgumentException
- if dataDao is not supported
-
getPersistentClass
public Class getPersistentClass()
Description copied from interface:ObjectDaoInternal
Gets the type ofEntityObject
this Dao works with.- Specified by:
getPersistentClass
in interfaceObjectDao
- Specified by:
getPersistentClass
in interfaceObjectDaoInternal<Attachment>
- Returns:
- the type
-
getLatestVersionsOfAttachments
public List<Attachment> getLatestVersionsOfAttachments(ContentEntityObject content)
Description copied from interface:AttachmentDao
Retrieves the latest versions of all attachments to ceo- Specified by:
getLatestVersionsOfAttachments
in interfaceAttachmentDao
- Parameters:
content
- the content to look up attachments- Returns:
- a List of Attachment objects
- See Also:
AttachmentDao.countLatestVersionsOfAttachments(com.atlassian.confluence.core.ContentEntityObject)
-
getLatestVersionsOfAttachmentsForMultipleCeos
public List<Attachment> getLatestVersionsOfAttachmentsForMultipleCeos(Iterable<? extends ContentEntityObject> contentEntityObjects)
Description copied from interface:AttachmentDao
Retrieves the latest versions of all attachments for all CEOs provided- Specified by:
getLatestVersionsOfAttachmentsForMultipleCeos
in interfaceAttachmentDao
- Parameters:
contentEntityObjects
- CEOs to retrieve attachements for- Returns:
- a List of Attachment objects
-
getLatestVersionsOfAttachmentsWithAnyStatusForContainers
public List<Attachment> getLatestVersionsOfAttachmentsWithAnyStatusForContainers(Iterable<? extends ContentEntityObject> contentEntityObjects)
Description copied from interface:AttachmentDaoInternal
Retrieves the latest versions of all attachments for all CEOs provided (including trashed)- Specified by:
getLatestVersionsOfAttachmentsWithAnyStatusForContainers
in interfaceAttachmentDaoInternal
- Parameters:
contentEntityObjects
- CEOs to retrieve attachements for- Returns:
- a List of Attachment objects
-
getLatestVersionsOfAttachmentsWithAnyStatus
public List<Attachment> getLatestVersionsOfAttachmentsWithAnyStatus(ContentEntityObject content)
Description copied from interface:AttachmentDao
Retrieves the latest versions of all attachments to ceo (including trashed)- Specified by:
getLatestVersionsOfAttachmentsWithAnyStatus
in interfaceAttachmentDao
- Parameters:
content
- the content to look up attachments- Returns:
- a List of Attachment objects
- See Also:
AttachmentDao.countLatestVersionsOfAttachments(com.atlassian.confluence.core.ContentEntityObject)
-
getLatestVersionsOfAttachments
public List getLatestVersionsOfAttachments(ContentEntityObject ceo, LimitedRequest request)
- Specified by:
getLatestVersionsOfAttachments
in interfaceAttachmentDao
-
countLatestVersionsOfAttachments
public int countLatestVersionsOfAttachments(ContentEntityObject content)
- Specified by:
countLatestVersionsOfAttachments
in interfaceAttachmentDao
- Parameters:
content
- the content object- Returns:
- the number of current attachments on a content object
- See Also:
AttachmentDao.getLatestVersionsOfAttachments(com.atlassian.confluence.core.ContentEntityObject)
-
countLatestVersionsOfAttachmentsWithAnyStatus
public int countLatestVersionsOfAttachmentsWithAnyStatus(ContentEntityObject content)
- Specified by:
countLatestVersionsOfAttachmentsWithAnyStatus
in interfaceAttachmentDao
- Parameters:
content
- the content object- Returns:
- the number of current attachments on a content object (including trashed)
-
countLatestVersionsOfAttachmentsOnPageSince
public int countLatestVersionsOfAttachmentsOnPageSince(ContentEntityObject content, Date since)
- Specified by:
countLatestVersionsOfAttachmentsOnPageSince
in interfaceAttachmentDao
- Parameters:
content
- the content objectsince
- the date of earliest change- Returns:
- the number of attachments on a content object (including trashed) changed since
- See Also:
AttachmentDao.getLatestVersionsOfAttachmentsForMultipleCeos(Iterable)
-
getAttachmentStatistics
public Optional<AttachmentStatisticsDTO> getAttachmentStatistics()
Description copied from interface:AttachmentDao
Fetches statistics about attachments- Specified by:
getAttachmentStatistics
in interfaceAttachmentDao
- Returns:
- an AttachmentStatisticsDTO with statistics about attachments such as total and current count
-
getById
public Attachment getById(long id)
Description copied from interface:AttachmentDao
Returns the attachment with the given persistent ID. Returns null if no such attachment exists.- Specified by:
getById
in interfaceAttachmentDao
- Parameters:
id
- the persistent ID of the attachment to retrieve- Returns:
- the attachment with the given ID, or null if no attachment exists with the provided ID.
-
getByIds
public List<Attachment> getByIds(List<Long> ids)
Description copied from interface:AttachmentDao
Returns a list of attachments matching the given list of IDs. Returns an empty list if no such attachments exist. In the case where some IDs exist and some don't, only the existing Attachments will be returned.- Specified by:
getByIds
in interfaceAttachmentDao
- Parameters:
ids
- list of IDs to retrieve- Returns:
- the attachments with the given IDs, or an empty list if no attachments exist with the provided IDs.
-
getAttachment
public Attachment getAttachment(ContentEntityObject content, String fileName, int version)
Description copied from interface:AttachmentDao
Return the attachment on the specified content with the given filename and version. Returns null if no such attachment exists.Note: unlike
AttachmentManager.getAttachment(ContentEntityObject, String, int)
, this method does not accept zero as a special flag to indicate the latest version of an attachment. To retrieve the latest version of an attachment, useAttachmentDao.getLatestAttachment(ContentEntityObject, String)
.- Specified by:
getAttachment
in interfaceAttachmentDao
- Parameters:
content
- the content to find the attachment onfileName
- the file name of the attachment, treated case-insensitivelyversion
- the version of the attachment- Returns:
- the attachment with the given name and version attached to that content, or null if the attachment does not exist.
-
getLatestAttachment
public Attachment getLatestAttachment(ContentEntityObject content, String fileName)
Description copied from interface:AttachmentDao
Return the latest version of the attachment on the specified content with the given filename. Returns null if no attachment with that name on the content exists.- Specified by:
getLatestAttachment
in interfaceAttachmentDao
- Parameters:
content
- the content to find the attachment onfileName
- the file name of the attachment- Returns:
- the latest version of attachment with the given name attached to that content, or null if the attachment does not exist.
-
getLastAddedVersionsOf
public List<Attachment> getLastAddedVersionsOf(Attachment attachment)
Description copied from interface:AttachmentDao
Retrieves all the last added versions for each user who has added a version of the attachment That is, if a user has added multiple versions, only the latest added version will be added to the list returned. Result will be sorted with the earliest version coming first.- Specified by:
getLastAddedVersionsOf
in interfaceAttachmentDao
- Parameters:
attachment
- attachment (must be the latest version)- Returns:
- the last added versions for each user who has added a version of the attachment
-
findAllVersions
public List<Attachment> findAllVersions(Attachment attachment)
- Specified by:
findAllVersions
in interfaceAttachmentDao
-
findAllVersions
public List<Attachment> findAllVersions(Long id)
-
getAttachmentData
public InputStream getAttachmentData(Attachment attachment) throws AttachmentDataNotFoundException
Description copied from interface:AttachmentDao
Retrieves the InputStream representing the data for attachment- Specified by:
getAttachmentData
in interfaceAttachmentDao
- Parameters:
attachment
- the attachment whose data will be returned- Returns:
- InputStream of the data
- Throws:
AttachmentDataNotFoundException
- if the data could not be found
-
getAttachmentData
public InputStream getAttachmentData(Attachment attachment, Optional<RangeRequest> range) throws AttachmentDataNotFoundException
Description copied from interface:AttachmentDao
Retrieves the InputStream representing the specified range of data for attachment- Specified by:
getAttachmentData
in interfaceAttachmentDao
- Parameters:
attachment
- the attachment whose data will be returnedrange
- the range of data to retrieve. Seecom.atlassian.filestore.client.api.entity.ByteRanges
- Returns:
- InputStream of the data
- Throws:
AttachmentDataNotFoundException
- if the data could not be found
-
saveNewAttachment
public void saveNewAttachment(Attachment attachment, InputStream attachmentData)
Description copied from interface:AttachmentDao
Saves a new attachment- Specified by:
saveNewAttachment
in interfaceAttachmentDao
- Parameters:
attachment
- the Attachment to be savedattachmentData
- the attachment data to be saved
-
saveNewAttachmentVersion
public void saveNewAttachmentVersion(Attachment attachment, Attachment previousVersion, InputStream attachmentData)
This implementation saves the Attachment and its previous version to the VersionedHibernateObjectDao.Due to the way Hibernate works, attachment must be the current Hibernate-managed object (without its version or ID having being changed), and previousVersion should be a clone of the unmodified Attachment object.
- Specified by:
saveNewAttachmentVersion
in interfaceAttachmentDao
- Parameters:
attachment
- the attachment to be saved, a clone of the old onepreviousVersion
- the old attachment, which must be unmodifiedattachmentData
- the new attachment data
-
isAttachmentPresent
public boolean isAttachmentPresent(Attachment attachment)
Description copied from interface:AttachmentDao
Check that an attachment exists- Specified by:
isAttachmentPresent
in interfaceAttachmentDao
- Parameters:
attachment
- the Attachment to be checked
-
moveAttachment
public void moveAttachment(Attachment latestVersion, Attachment oldAttachment, ContentEntityObject newContent)
Description copied from interface:AttachmentDao
Moves an Attachment to a new file name or content objectThis method assumes that the filename and/or content of the attachment (and its previous versions) have already been updated.
- Specified by:
moveAttachment
in interfaceAttachmentDao
- Parameters:
latestVersion
- the Attachment to be movedoldAttachment
- the Attachment before it has been updatednewContent
- the new content attachment belongs to
-
removeAttachment
protected void removeAttachment(Attachment attachment, ContentEntityObject content)
Severs the connection between attachment and content, and removes the attachment from the database- Parameters:
attachment
- the attachment to removecontent
- the content to remove the attachment from
-
removeAttachmentVersionFromServer
public final void removeAttachmentVersionFromServer(Attachment attachmentVersionToBeRemoved)
Description copied from interface:AttachmentDao
Removes an attachment version- Specified by:
removeAttachmentVersionFromServer
in interfaceAttachmentDao
- Parameters:
attachmentVersionToBeRemoved
- the Attachment version to be removed
-
removeAttachmentVersionFromServer
protected abstract void removeAttachmentVersionFromServer(Attachment attachmentVersionToBeRemoved, @Nullable Attachment previousAttachmentVersion)
-
removeMetaData
protected void removeMetaData(Attachment attachment)
Removes attachment meta data.The steps for removing attachment meta data are
- the attachment object being de-referenced from its container (e.g. page)
- the original version (reference to the latest version) to be set to null
- the row removal to be recorded
- the un-index to be queued
- Parameters:
attachment
- the attachment version to be removed
-
overwriteMetaData
protected void overwriteMetaData(Attachment sourceAttachment, Attachment targetAttachment)
Overwrites attachment meta data.The latest version of an attachment inherits the
EntityObject.getId()
of the first version, that means the identifier which was given to the first version gets replaced by a new one if a second version gets uploaded, and the second version inherits the identifier of the first one. Thus using the identifier of the latest version in the frontend is guaranteed to never become stale.Thus
- removing a historical version is "simple", as the only thing that references it is its container (e.g. page)
- removing the current version is "complex", as this requires the previous version to be "promoted" to the current version
The corresponding row of sourceAttachment in the ATTACHMENTS table will be removed, and its data will be used to overwrite the corresponding row of targetAttachment. Calling this method assumes that you removed all tuples having a referential constraint on the sourceAttachment's row ahead, since the state of the Hibernate session will be synchronised with the database several times as part of this execution. The sourceAttachment object will become untracked by Hibernate as a result of this call, and it will have the id of the targetAttachment, thus anything relying on the old state should have cached it ahead (e.g. shallow
Attachment.clone()
).- Parameters:
sourceAttachment
- the attachment version to be movedtargetAttachment
- the attachment version to be overwritten
-
getBackingStorageType
public AttachmentDataStorageType getBackingStorageType()
Description copied from interface:AttachmentDao
Returns the backing storage type.- Specified by:
getBackingStorageType
in interfaceAttachmentDao
- Returns:
- the backing storage type
- See Also:
AttachmentDataDao.getStorageType()
-
removeAllAttachmentVersions
protected List<Attachment> removeAllAttachmentVersions(Attachment latestVersion, ContentEntityObject content)
-
getMigrator
public AttachmentDao.AttachmentMigrator getMigrator(AttachmentDao destinationDao)
Description copied from interface:AttachmentDao
Get a migrator object to migrate attachments between attachment datastores.To be used when switching datastore implementations
- Specified by:
getMigrator
in interfaceAttachmentDao
- Parameters:
destinationDao
- dao to move attachments to- Returns:
- A migrator
-
getCopier
public AttachmentDao.AttachmentCopier getCopier(AttachmentDao destinationDao)
Description copied from interface:AttachmentDao
Get a copier object to copy attachments between data storesThe source data store will remain untouched
- Specified by:
getCopier
in interfaceAttachmentDao
- Parameters:
destinationDao
- dao to copy attachments to- Returns:
- A copier
-
updateAttachment
public void updateAttachment(Attachment attachment)
Description copied from interface:AttachmentDao
Update an existing attachment without creating a new version- Specified by:
updateAttachment
in interfaceAttachmentDao
-
prepareForMigrationTo
public void prepareForMigrationTo()
This implementation removes the contents of the table and passes the migration tasks onto the AttachmentDataDao- Specified by:
prepareForMigrationTo
in interfaceAttachmentDao
-
afterMigrationFrom
public void afterMigrationFrom()
This implementation removes all Attachments and passes the migration tasks onto the AttachmentDataDao- Specified by:
afterMigrationFrom
in interfaceAttachmentDao
-
getRemappedAttachmentIds
public Map<Long,Long> getRemappedAttachmentIds()
Description copied from interface:AttachmentDao
Gets a list of remapped attachment IDs. The key is the old ID and the value is the new ID.- Specified by:
getRemappedAttachmentIds
in interfaceAttachmentDao
- Returns:
- A map where the key is the original ID and the value is the new ID.
-
replaceAttachmentData
public void replaceAttachmentData(Attachment attachment, InputStream attachmentData)
Description copied from interface:AttachmentDao
Sets the attachment data for attachmentThis method will overwrite any existing data for the attachment version.
- Specified by:
replaceAttachmentData
in interfaceAttachmentDao
- Parameters:
attachment
- Attachment the data belongs toattachmentData
- the data to save
-
flush
public void flush()
This implementation flushes the Hibernate session.- Specified by:
flush
in interfaceFlushableCachingDao
-
findLatestVersionIdsIterator
public Iterator<Long> findLatestVersionIdsIterator(List<Space> spacesToInclude)
Same asfindLatestVersionIdsIterator()
but only gets the ids matching the list of spaces requested.- Parameters:
spacesToInclude
- list of spaces to include. The length of this list should not exceed the allowed maximum value of an "in" clause.- Returns:
- a list of the latest versions of attachments in the requested spaces
-
findLatestVersionIds
public List<Long> findLatestVersionIds(List<Space> spacesToInclude)
Same asfindLatestVersionIdsIterator()
but only gets the ids matching the list of spaces requested.- Parameters:
spacesToInclude
- list of spaces to include. The length of this list should not exceed the allowed maximum value of an "in" clause.- Returns:
- a list of the ids of the latest versions of attachments in the requested spaces
-
-