Quando si ha un'entità, come UserEntity, la proprietà id
deriva dalla sua chiave primaria nel db - si dovrebbe fornire un metodo setter come setId()
?L'ID di entità come argomento costruttore o tramite un metodo setter?
Alcuni argomenti contro:
- apre la porta a possibili sovrascritture accidentali di altre UserEntities nel db
- due (o più) UserEntities potrebbero esistere in qualsiasi momento con le stesse
id
ma diverse proprietà . (Se ho tirato 3 diversi utenti dal db e impostare i loro valoriid
allo stesso)
Alcuni argomenti di:
- se non ho per istanziare l'UserEntity con una
id
nel costruttore (dato che ha un metodo setter), posso usare i metodi dell'oggetto UserEntity con valori temporanei/falsi/nuovi utenti ... senza doverli prima persistere.
Fornire un setter (e non forzare un id
nel costruttore), o forzare un id
nel costruttore, e rimuovere il setter?
Grazie per la risposta! Quando il livello di persistenza imposta l'identità, dovrebbe essere attraverso il costruttore o attraverso un setter? L'entità può essere istanziata senza l'identità? – johnnietheblack
Dovrebbe essere attraverso un setter o tramite riflessione a seconda della lingua. E dovrebbe essere possibile instantiete senza identità, anche se bisogna essere consapevoli che quando un'entità transitoria diventa persistente, le sue caratteristiche di uguaglianza possono cambiare mentre l'oggetto rimane in memoria se ad esempio il codice hash è derivato dall'identità. – eulerfx