实体状态检测策略
下表描述了 Spring Data 用于检测实体是否为新的策略:
表 1. Spring Data 中检测实体是否为新的选项
@Id-属性检查(默认)
|
默认情况下,Spring Data 会检查给定实体的标识符属性。如果标识符属性为 null 或(对于基本类型)为 0,则认为实体是新的。否则,认为它不是新的。 |
@Version-属性检查
|
如果存在带有 @Version 注解的属性且为 null,或者对于基本类型版本属性为 0,则认为实体是新的。如果版本属性存在但具有不同的值,则认为实体不是新的。如果不存在版本属性,Spring Data 会回退到标识符属性检查。 |
实现 Persistable |
如果实体实现了 Persistable 接口,Spring Data 会将新实体的检测委托给该实体的 isNew(…) 方法。有关详细信息,请参阅 Javadoc。
注意:如果您使用 AccessType.PROPERTY,Persistable 的属性将被检测并持久化。为避免这种情况,请使用 @Transient。 |
© .
This site is unofficial and not affiliated with VMware.