Anda dapat secara eksplisit menonaktifkan className
atribut:@Entity(noClassnameStored = true)
Saya biasanya menekan atribut, jika ada kelas entitas tunggal. Jika saya mensubklasifikasikan entitas saya, saya secara eksplisit mengaktifkannya (yang merupakan default, tetapi hanya untuk memastikan).
Kalau tidak salah, Morphia cukup pintar menebak subclass yang benar berdasarkan propertinya meski tidak ada className
(berdasarkan refleksi). Jadi jika Anda memiliki atribut mongoKnowledge di subkelas Anda Pengembang dari Orang dan subkelas Anda Manajer tidak memilikinya, Morphia akan mengetahui dokumen itu dengan mongoKnowledge harus dari kelas Pengembang . Jadi sebenarnya className
hanya diperlukan jika subkelas Anda memiliki atribut yang sama; namun, saya tidak akan terlalu mengandalkannya.
Saya belum mencoba mengganti nama kelas entitas, tetapi mungkin akan menyebabkan masalah. Ada masalah lama untuk memberikan @Polimorphic
penjelasan dan untuk memperbaikinya bersama-sama dengan itu. Lihat https://code.google.com/p/morphia/issues/detail?id=22