Nei Grails Grails Book "programmazione" Burt dice di uguale & hashCode (e spero sto proprio qui), che dovrebbero essere implementate in scenari di utilizzo di proxy (come quando si fa lazy-carico o Customer.load()
) e conservati in una collezione. Perché se un'entità proxy e un'entità senza proxy sono archiviate in una raccolta, non vengono considerate come lo stesso oggetto.
Come Hibernate normalmente utilizza versioni non proxy di un'istanza di dominio se è già nella cache di primo livello (la sessione di Hibernate), questo problema si verifica solo se si dispone di un oggetto dominio, che non è nell'attuale ibernazione sessione (come la sessione http).
Se si vuole evitare che il codice standard molto, è possibile utilizzare l'annotazione @EqualsAndHashCode
(vedi docs) come la seguente:
@EqualsAndHashCode(includes='firstName,lastName')
class Customer {
String customerId
String firstName
String lastName
}
Per ulteriori informazioni consultare la sezione "Programmazione Grails - Burt Beckwith" First Edition, pagina 134.
fonte
2015-04-16 20:27:17
Grazie per l'aiuto Mario! Potrei avere altre domande su questo argomento, ma tu mi hai indicato nella giusta direzione. –