Bạn có thể tắt rõ ràng className
thuộc tính:@Entity(noClassnameStored = true)
Nói chung, tôi đang loại bỏ thuộc tính, nếu có một lớp thực thể duy nhất. Nếu tôi phân lớp phụ thực thể của mình, tôi sẽ bật rõ ràng nó (đó là mặc định, nhưng chỉ để chắc chắn).
Nếu tôi không nhầm, Morphia đủ thông minh để đoán đúng lớp con dựa trên các thuộc tính ngay cả khi không có className
(dựa trên sự phản ánh). Vì vậy, nếu bạn có thuộc tính mongoKnowledge trong lớp con của bạn Nhà phát triển của Người và lớp con của bạn Người quản lý không có nó, Morphia sẽ biết các tài liệu đó với mongoKnowledge phải thuộc lớp Nhà phát triển . Vì vậy, nói một cách chính xác className
chỉ được yêu cầu nếu các lớp con của bạn có các thuộc tính giống nhau; tuy nhiên, tôi sẽ không dựa vào nó quá nhiều.
Tôi chưa cố gắng đổi tên các lớp thực thể, nhưng nó có thể sẽ gây ra sự cố. Có một vấn đề lâu dài là cung cấp @Polimorphic
chú thích và để sửa chữa nó cùng với đó. Xem https://code.google.com/p/morphia/issues/detail?id=22