Hibernate Envers是一个用于实现数据版本控制的开源框架。它可以在数据库中跟踪和存储实体对象的历史变化,包括创建、更新和删除操作。当我们使用Hibernate Envers时,它会自动创建一个历史表来存储每个实体对象的历史版本。
然而,Hibernate Envers不能在更新时启动的原因是它的设计初衷是用于跟踪实体对象的历史变化,而不是在每次更新时都创建一个新的历史版本。这是为了避免在更新频繁的情况下产生大量的历史记录,从而导致数据库性能下降和存储空间浪费。
相反,Hibernate Envers在实体对象发生更新时,会将更新后的数据与之前的历史版本进行比较,并将差异部分存储为一条新的历史记录。这样可以有效地减少历史记录的数量,并且只存储实际发生变化的数据,节省了存储空间和数据库查询的开销。
因此,如果我们希望在每次更新时都创建一个新的历史版本,可以考虑使用其他的数据版本控制方案或自定义实现。但需要注意的是,在频繁更新的情况下,这可能会导致数据库性能和存储空间的问题。
腾讯云提供了一系列与数据存储和版本控制相关的产品和服务,例如云数据库MySQL版、云数据库PostgreSQL版、云数据库MongoDB版等。这些产品都提供了数据版本控制的功能,可以根据实际需求选择合适的产品进行使用。
更多关于腾讯云数据库产品的信息,可以访问以下链接:
请注意,以上答案仅供参考,具体的产品选择和实现方式应根据实际需求和情况进行评估和决策。
领取专属 10元无门槛券
手把手带您无忧上云