Spring Data JPA實體狀態(tài)檢測之Persistable

保存之前先檢測entity狀態(tài)

對實體的狀態(tài),Spring Data JPA提供了3種檢測方式,請參看官方文檔

  • 檢測id和version
  • 實現Persistable接口
  • 實現EntityInformation接口

網上大部分例子都是第一種檢測方式,即檢測id和version,下面舉個實現Persistable接口的例子:

@Setter
@Getter
@MappedSuperclass
@EntityListeners(AuditingEntityListener.class)
public class BaseBean implements Persistable<String> {
    
    @Transient
    private boolean isNew = true;

    @Id
    @GeneratedValue(generator = "uuid")
    @GenericGenerator(name = "uuid", strategy = "com.test.MyIdentifierGenerator")
    @Column(name = "id")
    private String id;

    @Version
    @Column(name = "version")
    private Integer version;

    @CreatedBy
    @Column(name = "created_user")
    private String createdUser;

    @CreatedDate
    @Column(name = "created_date")
    private Date createdDate;

    @LastModifiedBy
    @Column(name = "modified_user")
    private String modifiedUser;

    @LastModifiedDate
    @Column(name = "modified_Date")
    private Date modifiedDate;

    @Override
    public boolean isNew() {
        return this.isNew;
    }
    
    @PostLoad
    public void markNotNew() {
        this.isNew = false;
    }
}

PS:
個人覺得還是不要總是檢測id和version,因為那里面要涉及檢測邏輯,不如直接標識isNew來的快。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容