I cookie ci aiutano a fornire i nostri servizi.

Utilizzando tali servizi, accetti l'utilizzo dei cookie da parte nostra. Per saperne di piu'

Approvo

Lavorando con il Service Builder vi sarete accorti sicuramente degli innumerevoli metodi messi a disposizione dalla classe di persistenza EntityLocalServiceUtil; tra i vari metodi generati ce ne sono due utilizzati per recuperare un'istanza della singola entità a partire dalla chiave primaria: getEntity e fetchEntity.

Qual'è la differenza tra questi due metodi, apparentemente uguali?

Entrambi i metodi si comportano nel medesimo modo, ossia recuperano l'istanza dell'entità corrispondente alla chiave primaria passata come argomento; inoltre entrambi, in caso di errori di sistema, lanciano una SystemException.

La firma dei due metodi è molto simile:

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).

Quale dei due metodi utilizzare? Dipende da come si preferisce gestire l'errore a livello applicativo.

Da notare infine che il metodo getEntity invoca internamente il metodo fetchEntity.

Si ricorda che il termine Entity va sostituito con il nome della entità specifica.