Working with Service Builder, you'll certainly notice a lot of useful methods exposed by the persistence class EntityLocalServiceUtil
; among the various generated methods, there are two of them used to retrieve an instance of a single entity starting from the primary key: getEntity
and fetchEntity
.
But what's the difference between these two methods?
Both methods have the same behavior, namely they retrieve the instance of the entity corresponding to the primary key provided; and both of them, in case of a system failure, throw a SystemException
exception.
Methods' signatures are also similar:
Entity getEntity(long primaryKey) throws PortalException, SystemException; Entity fetchEntity(long primaryKey) throws SystemException;
Ciò che li differenzia è il loro comportamento nel caso in cui l'entità corrispondente alla chiave primaria non esista; infatti mentre il metodo fetchEntity
restituisce semplicemente null
, il metodo getEntity
lancia un'eccezione di tipo NoSuchEntityException
(sottoclasse di PortalException
).
The difference between them is the behavior in case the entity corresponding to the primary key does not exist; while fetchEntity
method simply returns null
, the getEntity
method throws a NoSuchEntityException
exception (a subclass of PortalException
).
Which method to use? It depends on how you prefer to handle the errors.
Finally you must know that getEntity
method invoke internally the fetchEntity
method.
Remember that the Entity
term must be replaced with the specific entity name.