Perbedaan drastis yang mungkin Anda harapkan jika Anda men-cache apa yang baik untuk di-cache dan menghindari caching data yang tidak boleh di-cache sama sekali. Seperti kecantikan di mata yang melihatnya, begitu pula dengan penampilan. Berikut adalah beberapa aspek yang harus Anda perhatikan saat menggunakan hibernate AS second level cache provider:
Tidak ada serialisasi Kustom - Memori intensif
Jika Anda menggunakan caching tingkat kedua, Anda tidak akan dapat menggunakan kerangka serialisasi cepat seperti Kryo dan harus tetap menggunakan Java serializable yang menyebalkan.
Selain itu, untuk setiap jenis entitas Anda akan memiliki wilayah yang terpisah dan di dalam setiap wilayah, Anda akan memiliki entri untuk setiap kunci dari setiap entitas. Dalam hal efisiensi memori, ini tidak efisien.
Tidak memiliki kemampuan untuk menyimpan dan mendistribusikan objek kaya
Sebagian besar cache modern juga menghadirkan fungsionalitas grid komputasi yang membuat objek Anda terfragmentasi menjadi banyak bagian kecil mengurangi kemampuan Anda untuk menjalankan tugas terdistribusi dengan lokasi data yang terjamin. Itu sedikit tergantung pada penyedia Grid, tetapi bagi banyak orang akan menjadi batasan.
Kinerja di bawah optimal
Bergantung pada seberapa banyak kinerja yang Anda butuhkan dan jenis aplikasi apa yang Anda gunakan menggunakan cache tingkat kedua hibernasi mungkin merupakan pilihan yang baik atau buruk. Baik dalam hal plug and play...." agak..." buruk karena Anda tidak akan pernah memeras kinerja yang akan Anda peroleh. Merancang model kaya juga berarti lebih banyak pekerjaan di muka dan lebih banyak OOP.
Kemampuan kueri terbatas DI Cache itu sendiri
Itu tergantung pada penyedia cache, tetapi beberapa penyedia benar-benar tidak baik melakukan JOIN dengan klausa Where yang berbeda dari ID. Jika Anda mencoba membangun dan dalam indeks memori untuk kueri di Hazelcast, misalnya, Anda akan melihat apa yang saya maksud.