|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
public interface InitializationCapable
Indicates an implementation capable of initializing an object, such that any lazy loading is guaranteed to have been completed.
Structured as a separate interface (rather than a subclass of
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).
| Method Summary | |
|---|---|
void |
initialize(Object entity)
Initializes the indicated object. |
boolean |
isInitialized(Object entity)
Indicaets whether the passed object is initialized or not. |
| Method Detail |
|---|
void initialize(Object entity)
May throw an exception if the implementation so desires.
entity - to initializeboolean isInitialized(Object entity)
entity - to determine if initialized
true if initialized, false is uninitialized or
the initialization status is unknown
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||