Nếu chúng ta chỉ nói về sự kiên trì, Serializablethì không cần thiết Nhưng tốt nhất là tạo ra các thực thể Serializable.
Nếu chúng ta đang phơi bày domain/ entitiescác đối tượng tiếp xúc trực tiếp với lớp trình bày, thay vì sử dụng DTO, Trong trường hợp đó chúng ta cần thực hiện Serializable. Các đối tượng miền này có thể được lưu trữ HTTPSessioncho mục đích lưu trữ / tối ưu hóa. Một phiên http có thể được nối tiếp hoặc phân cụm. Và nó cũng được yêu cầu để chuyển dữ liệu giữa các JVMlần.
Khi chúng ta sử dụng DTOđể tách lớp lớp bảo trì và lớp dịch vụ, việc đánh dấu các đối tượng miền Serializablesẽ phản tác dụng và sẽ vi phạm phạm lỗi encapsulation. Sau đó, nó trở thành một mô hình chống.
Định danh tổng hợp
Lớp khóa chính phải được tuần tự hóa.
Mô hình POJO
Nếu một thực thể được sử dụng từ xa như một đối tượng tách rời, lớp thực thể phải thực hiện Serializablegiao diện.
Bộ nhớ cache
Thêm vào đó, nếu bạn đang thực hiện một clusteredmức độ thứ hai cachesau đó tổ chức của bạn phải serializable. Mã định danh phải là Serializablevì đó là một yêu cầu của JPA vì identifiercó thể được sử dụng làm khóa cho mục nhập bộ đệm cấp hai.
Và khi chúng tôi tuần tự hóa các thực thể, hãy đảm bảo cung cấp rõ ràng serialVersionUIDvới công cụ sửa đổi truy cập riêng. Bởi vì nếu một serializablelớp không khai báo rõ ràng a serialVersionUID, thì thời gian chạy tuần tự hóa sẽ tính toán một serialVersionUIDgiá trị mặc định cho lớp đó dựa trên các khía cạnh khác nhau của lớp, như được mô tả trong Đặc tả tuần tự hóa đối tượng Java (TM). serialVersionUIDTính toán mặc định rất nhạy cảm với các chi tiết lớp có thể thay đổi tùy thuộc vào việc triển khai trình biên dịch và do đó có thể dẫn đến bất ngờ InvalidClassExceptionstrong quá trình khử lưu huỳnh.