To support soft deletion, the entity class should implement SoftDelete
interface, and the corresponding database table should contain the following columns:
-
DELETE_TS – when the record was deleted.
-
DELETED_BY – the login of the user who deleted the record.
The default behavior for instances implementing SoftDelete
interface, is that soft deleted entities are not returned by queries or search by id. If required, this behavior can by dynamically
turned off using the following methods:
-
Calling
setSoftDeletion(false)
for the current EntityManager instance. -
Calling
setSoftDeletion(false)
forLoadContext
object when requesting data via DataManager. -
On datasource level – calling
CollectionDatasource.setSoftDeletion(false)
or settingsoftDeletion="false"
attribute ofcollectionDatasource
element in XML-descriptor screen.
In soft deletion mode, the platform automatically filters out the deleted instances when loading by id
and when using JPQL queries, as well as the deleted elements of the related entities in collection attributes. However, related entities in single-value
attributes are loaded, regardless of whether the related instance was deleted or not.