1. 概述
在应用程序中使用数据库时,我们通常需要处理不再有用的记录的删除。然而,由于业务或法规要求,例如数据恢复、审计追踪或引用完整性目的,我们可能需要隐藏这些记录而不是删除它们。
在本教程中,我们将了解Hibernate的@SoftDelete注解并学习如何实现它。
2. 理解@SoftDelete注解
**@SoftDelete注解提供了一种方便的机制来标记任何记录为活动状态或已删除状态。**它有三个不同的配置部分:
- **策略配置是跟踪活动行还是已删除行。**我们可以通过将_strategy_设置为_ACTIVE_或_DELETED_来配置它。
- **指示器列确定将使用哪个列来跟踪行。**如果没有指定列,则策略使用默认列(active_或_deleted)。
- **转换器定义了指示器列在数据库中的设置方式。**领域类型是一个布尔值,指示记录是活动状态还是已删除状态。然而,通过实现_AttributeConverter_,我们可以将关系类型设置为转换器定义的任何类型。可用的转换器有_NumericBooleanConverter_、YesNoConverter_和_TrueFalseConverter。
大约 4 分钟