实体状态检测策略

下表描述了 Spring Data 用于检测实体是否为新的策略:

表 1. Spring Data 中检测实体是否为新的选项

@Id-属性检查(默认)

默认情况下,Spring Data 会检查给定实体的标识符属性。如果标识符属性为 null 或(对于基本类型)为 0,则认为实体是新的。否则,认为它不是新的。

@Version-属性检查

如果存在带有 @Version 注解的属性且为 null,或者对于基本类型版本属性为 0,则认为实体是新的。如果版本属性存在但具有不同的值,则认为实体不是新的。如果不存在版本属性,Spring Data 会回退到标识符属性检查。

实现 Persistable

如果实体实现了 Persistable,Spring Data 会将新实体检测委托给实体的 isNew(…) 方法。有关详细信息,请参阅 Javadoc

注意:如果您使用 AccessType.PROPERTYPersistable 的属性将被检测并持久化。为避免这种情况,请使用 @Transient

© . This site is unofficial and not affiliated with VMware.