From c9fc2684ad8889260392ed764dc96ddb97035418 Mon Sep 17 00:00:00 2001
From: Ben Alex Dao
), as it is not required for all persistence strategies.
*
In general the recommended approach to lazy initialization is as follows: + * + *
Dao
implementation and add use case specific finder/read
+ * methods that will use the persistence engine's eager loading capabilities. Generally
+ * this approach will deliver the best overall application performance, as you will
+ * (i) only be eager loading if and when required and (ii) you are directly using the
+ * persistence engine capabilities to do so. It also places the eager loading management
+ * in the Dao
, which is an ideal location to standardise it.Dao
subclasses that exist in your application, you may
+ * prefer to modify your services layer so that it uses the InitializationCapable
+ * interface. However, this interface should be used judiciously given that it does
+ * not allow the persistence engine to optimise eager loading for given use cases
+ * and (probably) will lead to a mixture of places where fetching logic can be obtained.Generally your best strategy is subclassing the Dao
. It means the
+ * most code, but it's also by far the most efficient and offers flexibility to further
+ * fine-tune specific use cases. Whichever way you go, try to be consistent throughout
+ * your application (this will ease your future migration and troubleshooting needs).
+ *
* @author Ben Alex
* @version $Id$
*/